سلام.
بنده یک کد را ارائه می دهم، با الهام از آن، کدهای مورد نظر خود را بنویسید.
یک صفحه PHP با نام search.php می سازیم که شامل چارچوب HTML صفحه، یک فرم HTML و یک سری کد PHP برای پردازش ورودی دریافت شده توسط فرم می باشد :
اسم صفحه مهم می باشد زیرا در فرم تعیین کرده ایم که اطلاعات به صفحه با همین نام (search.php) ارسال شوند (صفحه جداگانه نیز می توان تعیین کرد، ولی بهتر است در همین صفحه ورودی ها را پردازش کنیم) :
پس اگر نام صفحه را متفاوت انتخاب کردید، نام جدید را در کد بالا بنویسید.
ابتدا با کد PHP زیر، اگر کاربر یک عبارت را جستجو کرده باشد، آن را دریافت کرده و در متغیری با نام words ذخیره می کنیم :
تابع isset برای تشخیص جستجو یا عدم جستجو به کار رفته، زیرا اگر کاربر بر روی دکمه submit فرم کلیک کرده باشد، مقدار وارد شده با روش POST و با نام words ، به همین صفحه ارسال می شود.
با خط زیر از کدها، تعیین کرده ایم که اگر کاربر یک عبارت را جستجو کرد، آن عبارت در جعبه متن درون فرم نمایش داده شود (شاید بخواهد کلمه جدیدی را به آن اضافه کرده و دوباره جستجو کند، پس بهتر است که جعبه متن خالی نمایش داده نشود) :
در آن، با تابع isset چک می کنیم که متغیر words تعریف شده یا نه.
سپس کدهای پردازشی برای دریافت اطلاعات و نمایش آنها را داریم :
کد بالا تنها در صورتی اجرا می شود که کاربر یک عبارت را جستجو کرده باشد. به جای عبارت زیر، کد دلخواه خود برای نمایش اطلاعات را بنویسید :
کد زیر برای اتصال به پایگاه داده می باشد که باید پارامترهای آن را متناسب با پایگاه داده خود تغییر بدهید :
با کد زیر هم جستجو کردیم که باید نام جدول و نام ستون مناسب برای مورد خود را در آنها بنویسید :
و بعد خواندن ردیف هایی که جدول برگردانده است (بر اساس جستجو) که باید در آن، نام ستون هایی که می خواهید مقادیر آنها خوانده شود را بنویسید :
در ضمن، برای دریافت متغیر words ، مسائل امنیتی مربوط به SQL injection (و سایر موارد مربوط به دریافت مقدار از کاربر) را رعایت نمایید (این عبارت را در اینترنت جستجو کنید، متوجه منظورم خواهید شد). همچنین نگاهی به کلید زیر بیندازید (کلید شماره 2502) :
http://www.kelidestan.com/keys/keys.php?key=2502
هر بخشی از کدها را که درک نکردید، برای توضیحات بیشتر، به مباحث آموزش PHP و آموزش MySQL مراجعه کنید :
http://www.kelidestan.com/php-education/index.php
http://www.kelidestan.com/mysql/index.php
بنده یک کد را ارائه می دهم، با الهام از آن، کدهای مورد نظر خود را بنویسید.
یک صفحه PHP با نام search.php می سازیم که شامل چارچوب HTML صفحه، یک فرم HTML و یک سری کد PHP برای پردازش ورودی دریافت شده توسط فرم می باشد :
کد پیاچپی:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
if(isset($_POST['words'])){
$words = $_POST['words'];
}
?>
<h2>جستجو :</h2>
<br /><br /><br />
<div style="text-align:center;">
<form method="post" action="search.php">
<input type="text" name="words" <?php if(isset($words)){echo "value=\"".$words."\"";} ?>>
<input type="submit" value="جستجو">
</form>
</div>
<br /><br />
<div>
<?php
if(isset($_POST['words'])){
$words = $_POST['words'];
// اتصال به پایگاه داده
$con=mysql_connect('localhost','root',''); // name and username and password
mysql_select_db("database_name",$con); // database name
mysql_query("SET character_set_results=utf8;",$con);
mysql_query("SET character_set_client=utf8;",$con);
mysql_query("SET character_set_connection=utf8;",$con);
mysql_query("SET character_set_database=utf8;",$con);
mysql_query("SET character_set_server=utf8;",$con);
$result = mysql_query("SELECT * FROM table_name WHERE
column_name
LIKE '%".$words."%'
",$con);
while($row = mysql_fetch_array($result)){
$column_1 = $row['column_1'];
$column_2 = $row['column_2'];
// your code
}
mysql_close($con);
}
?>
</div>
</body>
</html>
اسم صفحه مهم می باشد زیرا در فرم تعیین کرده ایم که اطلاعات به صفحه با همین نام (search.php) ارسال شوند (صفحه جداگانه نیز می توان تعیین کرد، ولی بهتر است در همین صفحه ورودی ها را پردازش کنیم) :
کد پیاچپی:
<form method="post" action="search.php">
پس اگر نام صفحه را متفاوت انتخاب کردید، نام جدید را در کد بالا بنویسید.
ابتدا با کد PHP زیر، اگر کاربر یک عبارت را جستجو کرده باشد، آن را دریافت کرده و در متغیری با نام words ذخیره می کنیم :
کد پیاچپی:
<?php
if(isset($_POST['words'])){
$words = $_POST['words'];
}
?>
تابع isset برای تشخیص جستجو یا عدم جستجو به کار رفته، زیرا اگر کاربر بر روی دکمه submit فرم کلیک کرده باشد، مقدار وارد شده با روش POST و با نام words ، به همین صفحه ارسال می شود.
با خط زیر از کدها، تعیین کرده ایم که اگر کاربر یک عبارت را جستجو کرد، آن عبارت در جعبه متن درون فرم نمایش داده شود (شاید بخواهد کلمه جدیدی را به آن اضافه کرده و دوباره جستجو کند، پس بهتر است که جعبه متن خالی نمایش داده نشود) :
کد پیاچپی:
<input type="text" name="words" <?php if(isset($words)){echo "value=\"".$words."\"";} ?>>
در آن، با تابع isset چک می کنیم که متغیر words تعریف شده یا نه.
سپس کدهای پردازشی برای دریافت اطلاعات و نمایش آنها را داریم :
کد پیاچپی:
<?php
if(isset($_POST['words'])){
$words = $_POST['words'];
// اتصال به پایگاه داده
$con=mysql_connect('localhost','root',''); // name and username and password
mysql_select_db("database_name",$con); // database name
mysql_query("SET character_set_results=utf8;",$con);
mysql_query("SET character_set_client=utf8;",$con);
mysql_query("SET character_set_connection=utf8;",$con);
mysql_query("SET character_set_database=utf8;",$con);
mysql_query("SET character_set_server=utf8;",$con);
$result = mysql_query("SELECT * FROM table_name WHERE
column_name
LIKE '%".$words."%'
",$con);
while($row = mysql_fetch_array($result)){
$column_1 = $row['column_1'];
$column_2 = $row['column_2'];
// your code
}
mysql_close($con);
}
?>
کد بالا تنها در صورتی اجرا می شود که کاربر یک عبارت را جستجو کرده باشد. به جای عبارت زیر، کد دلخواه خود برای نمایش اطلاعات را بنویسید :
کد پیاچپی:
// your code
کد زیر برای اتصال به پایگاه داده می باشد که باید پارامترهای آن را متناسب با پایگاه داده خود تغییر بدهید :
کد پیاچپی:
$con=mysql_connect('localhost','root',''); // name and username and password
mysql_select_db("database_name",$con); // database name
با کد زیر هم جستجو کردیم که باید نام جدول و نام ستون مناسب برای مورد خود را در آنها بنویسید :
کد پیاچپی:
$result = mysql_query("SELECT * FROM table_name WHERE
column_name
LIKE '%".$words."%'
",$con);
و بعد خواندن ردیف هایی که جدول برگردانده است (بر اساس جستجو) که باید در آن، نام ستون هایی که می خواهید مقادیر آنها خوانده شود را بنویسید :
کد پیاچپی:
while($row = mysql_fetch_array($result)){
$column_1 = $row['column_1'];
$column_2 = $row['column_2'];
// your code
}
در ضمن، برای دریافت متغیر words ، مسائل امنیتی مربوط به SQL injection (و سایر موارد مربوط به دریافت مقدار از کاربر) را رعایت نمایید (این عبارت را در اینترنت جستجو کنید، متوجه منظورم خواهید شد). همچنین نگاهی به کلید زیر بیندازید (کلید شماره 2502) :
http://www.kelidestan.com/keys/keys.php?key=2502
هر بخشی از کدها را که درک نکردید، برای توضیحات بیشتر، به مباحث آموزش PHP و آموزش MySQL مراجعه کنید :
http://www.kelidestan.com/php-education/index.php
http://www.kelidestan.com/mysql/index.php
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.