PDA

View Full Version : سوال: کسی می تونی این کد رو شی گرایی بنویسه؟



ab.ali
دوشنبه 20 مرداد 1393, 00:01 صبح
سلام، بنده یک چند وقت قصد دارم شی گرایی php رو فرا بگیرم ، یک کد نوشتم ولی نمی دونم برای شروع کار باید چطوری شی گراییش کنم، می شه یکی از دوستان لطف کنه یا راهنمایی کنن که بنده اینو به شی گرایی تبدیل کنم؟



<?php

$text=$_POST['text'];
$link=$_POST['link'];

$conn=mysql_connect('localhost','root','');

mysql_select_db('wp');

$query="INSERT INTO links (text,link) VALUES ('{$text}','{$link}');";

$sql=mysql_query($query);

if($sql){

echo "لین شما ثبت گردید !";
header('Refresh: 5; index.php');}

mysql_close($conn);

?>

vahidqara
دوشنبه 20 مرداد 1393, 00:09 صبح
درود اینجا سری بزن دستگیرت میشه چیکار کنی.. http://barnamenevis.org/showthread.php?460951-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%DB%8C-%DA%A9%D9%84%D8%A7%D8%B3-%D9%87%D8%A7&highlight=%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87+%DA %A9%D9%84%D8%A7%D8%B3+%D9%87%D8%A7

kingwolf11
دوشنبه 20 مرداد 1393, 00:13 صبح
با سلام . این کدو میشه به مدلای مختلف نوشت . ولی بنده یه مدل مینویسم . چون دارم اینجا مینویسم اگر مشکلی بود به بزرگ واری خودتو ببخشید :


include"config bayad include beshe";

class insert
{

function insert_links($text,$link,$header_location)
{

$query="INSERT INTO links (text,link) VALUES ('".$text."','".$link."');";

$sql=mysql_query($query);

if($sql)
{

echo "لین شما ثبت گردید !";

header('location:'.$header_location.'');

}

}

}

ab.ali
دوشنبه 20 مرداد 1393, 00:16 صبح
درود اینجا سری بزن دستگیرت میشه چیکار کنی.. http://barnamenevis.org/showthread.php?460951-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%DB%8C-%DA%A9%D9%84%D8%A7%D8%B3-%D9%87%D8%A7&highlight=%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87+%DA %A9%D9%84%D8%A7%D8%B3+%D9%87%D8%A7
ممنون ولی اصلا متوجه نشدم:لبخند:

kingwolf11
دوشنبه 20 مرداد 1393, 00:38 صبح
اگر کدی که نوشتم نیاز به توضیح داشت ، در خدمتم

vahidqara
دوشنبه 20 مرداد 1393, 09:46 صبح
دوست خوب اونجا همه چی واضح توضیح داده شده ..
شما باید یه مقدار در مورد شی گرایی مطالعه داشته باشی که بدونی چی هستند و چه طوری استفاده کنی از آنها.. :لبخندساده:

Mohammadsgh
دوشنبه 20 مرداد 1393, 10:33 صبح
اینجوری میتونی از کلاسش استفاده کنی.خیلی آسونه:لبخندساده:کافیه ورودی ها رو درون پرانتز بدید


$app=new insert();
$app->insert_links();

مهرداد سیف زاده
دوشنبه 20 مرداد 1393, 11:07 صبح
توضیحات رو توش نوشتم اگرم سوالی و هر جا مشکل داشتی بگو بیشتر توضیح بدم


<?php




/**
* DBLinkInsert Class
*/
class LinkInsert
{
// یه سری متغیرهایی که فقط در همین کلاس قابل استفاده هستن
// مثل نام دیتابیس و نام کاربری و اسم تیبل
private $_host = 'localhost';
private $_user = 'root';
private $_pass = '123';
private $_name = 'wp';
private $_tbl = 'links';


// بعد از کانکت شدن این متغیر حاوی رشته اتصال با دیتابیس هست که در تمام کوئری ها استفاده میشه
private $con = null;


// یک فانکشن از پیش تعریف شده هست
// به صورتی با اولین فراخوانی این کلاس بصورت خودکار فراخوانی میشه و کارشو انجام میده
// مثلا برای کار ما ماخوایم متثل بشه و رشته con رو حاوی رشته اتصال کنه
function __construct()
{
$this->con = mysql_connect($this->_host,$this->_user,$this->_pass);
mysql_select_db($this->_name);
}


// مثل متغیر بالایی ولی در موقعی که کلاس کارش تموم شده فراخوانی میشه
function __destruct()
{
mysql_close($this->con);
}


// اسنم کار اصلی ما
public function insert($text,$link)
{
$query="INSERT INTO `".$this->_tbl."` (`text`,`link`) VALUES ('{$text}','{$link}');";
return mysql_query($query,$this->con);

}
}




// یک شی از روی کلاس نوشته شده ساخته میشه
$link = new LinkInsert();


// مقدارها جاگاری میشه
$ins = $link->insert('google','http://google.com');


// اگر OK بود کرا شما
if($ins == true)
{
echo "ok";
}


?>

ab.ali
دوشنبه 20 مرداد 1393, 14:27 عصر
از همه دوستان که منو راهنمایی کردن و وقت گذاشتن ممنونم.:قلب::قلب:

ab.ali
دوشنبه 20 مرداد 1393, 14:29 عصر
با سلام . این کدو میشه به مدلای مختلف نوشت . ولی بنده یه مدل مینویسم . چون دارم اینجا مینویسم اگر مشکلی بود به بزرگ واری خودتو ببخشید :


include"config bayad include beshe";

class insert
{

function insert_links($text,$link,$header_location)
{

$query="INSERT INTO links (text,link) VALUES ('".$text."','".$link."');";

$sql=mysql_query($query);

if($sql)
{

echo "لین شما ثبت گردید !";

header('location:'.$header_location.'');

}

}

}


ممنون دوست عزیز، اون فایل config که باید include بشه ، منظورتون همون فایل define هست؟

ab.ali
دوشنبه 20 مرداد 1393, 14:31 عصر
اینجوری میتونی از کلاسش استفاده کنی.خیلی آسونه:لبخندساده:کافیه ورودی ها رو درون پرانتز بدید


$app=new insert();
$app->insert_links();


ممنون، ببخشید این ورودی ها رو نمی خواد مثل ساختیافته ببریم توی یک صفحه و بعدش ازشون استفاده کنیم؟(مثل اونی که خودم نوشتم)
یعنی منظورم اینه که ما در شی گرایی یک فایل برای کلاس ایجاد می کنیم و بعدش از اون کلاس ها در همون صفحه اصلی که فرم ها وجود دارن استفاده می کنیم؟

ab.ali
دوشنبه 20 مرداد 1393, 14:35 عصر
توضیحات رو توش نوشتم اگرم سوالی و هر جا مشکل داشتی بگو بیشتر توضیح بدم


<?php




/**
* DBLinkInsert Class
*/
class LinkInsert
{
// یه سری متغیرهایی که فقط در همین کلاس قابل استفاده هستن
// مثل نام دیتابیس و نام کاربری و اسم تیبل
private $_host = 'localhost';
private $_user = 'root';
private $_pass = '123';
private $_name = 'wp';
private $_tbl = 'links';


// بعد از کانکت شدن این متغیر حاوی رشته اتصال با دیتابیس هست که در تمام کوئری ها استفاده میشه
private $con = null;


// یک فانکشن از پیش تعریف شده هست
// به صورتی با اولین فراخوانی این کلاس بصورت خودکار فراخوانی میشه و کارشو انجام میده
// مثلا برای کار ما ماخوایم متثل بشه و رشته con رو حاوی رشته اتصال کنه
function __construct()
{
$this->con = mysql_connect($this->_host,$this->_user,$this->_pass);
mysql_select_db($this->_name);
}


// مثل متغیر بالایی ولی در موقعی که کلاس کارش تموم شده فراخوانی میشه
function __destruct()
{
mysql_close($this->con);
}


// اسنم کار اصلی ما
public function insert($text,$link)
{
$query="INSERT INTO `".$this->_tbl."` (`text`,`link`) VALUES ('{$text}','{$link}');";
return mysql_query($query,$this->con);

}
}




// یک شی از روی کلاس نوشته شده ساخته میشه
$link = new LinkInsert();


// مقدارها جاگاری میشه
$ins = $link->insert('google','http://google.com');


// اگر OK بود کرا شما
if($ins == true)
{
echo "ok";
}


?>


ممنون کدتون کاملا واضح است ، ممنون.

Mohammadsgh
دوشنبه 20 مرداد 1393, 14:44 عصر
خب منم همینجوری نوشتم دیگه:لبخند:

ab.ali
دوشنبه 20 مرداد 1393, 16:07 عصر
خب منم همینجوری نوشتم دیگه:لبخند:

نه دوست عزیز، من سوال کردم.:خجالت:

ab.ali
دوشنبه 20 مرداد 1393, 16:29 عصر
دوستان سلام، من به کمک دوستان، کد آقای مهرداد 66 خودم یک بار نوشتم(بیشتر کپی کردم:خجالت:) که اینطوری شد:


<?php

class addLink{

public $host="localhost";
public $user="root";
public $pass="";
public $tbl="links";

function __construct(){

$this->conn=mysql_connect($this->host,$this->user,$this->pass);}

function __destruct(){

mysql_close($this->conn);}

public function sql($text,$link){

$query="INSERT INTO . '$this->links' . (text,link) VALUES ('{$text}','{$link}');";
return mysql_query($query,$this->conn);}

}

?>


و از طرفی در صفحه ای که قراره به کمک کلاس های addLink به دیتابیس و مستقیما به فرم ثبت اطلاعات وصل اینو نوشتم :

<?php

include('addLink.php');

$text=$_POST['text'];
$link=$_POST['link'];

$obj=new addLink();

$obj->sql($text,$link);

?>


اما وقتی می خوام اطلاعات رو ثبت کنم، این ارور رو می ده:
Undefined property: addLink::$links in D:\Wamp\www\WP\wp-content\themes\ZikoIT\addLink.php on line 20
مشکل از چیه؟
ممنون

مهرداد سیف زاده
دوشنبه 20 مرداد 1393, 19:38 عصر
شما توی خط 8 نام متغیر تیبل رو tbl گرفتید ولی در خط 20 اومدید اون رو با اسم links صدا زدید
برای رفع مشکل فقط کافیه بجای links بنویسید tbl

ab.ali
دوشنبه 20 مرداد 1393, 20:19 عصر
تشکر! فراوان