سلام و عرض ادب خدمت دوستان
بعد از کلی گشتن توی نت و مطرح کردن مشکلم توی فروم های مختلف سر از کلیدستان در آوردم و تنها امیدم به اینجاست
قراره توی یه صفحه ی html کاربر نام خانوادگی رو وارد کنه و توی دیتابیس جستجو بشه که :
این نام خانوادگی وارد شده وجود داره یانه ؟
اگه داره شماره ی قطعه ی ثبت شده توی دیتابیس مربوط به اون چیه و نمایش داده بشه .
همین خیلی هم آسونه . فقط من یاد ندارم .
کد پیاچپی:
<?php
$h=$_POST['f'];
$link=mysqli_connect('localhost', 'saderzam_arazi1', 'Arazi1pass', 'saderzam_arazi1') or die('Error:'. mysqli_error($link));
mysql_query("SET NAMES 'utf8'", $link);
mysql_query("SET CHARACTER SET 'utf8'", $link);
mysql_query("SET character_set_connection = 'utf8'", $link);
$query=mysql_query("SELECT * FROM 'arazi' WHERE 'family' LIKE '%h%'");
$result=mysqli_query($link, $query);
$row=mysqli_fetch_array($result);
echo $row ;
echo $row['ghete'];
$row=mysqli_fetch_array($result) ;
mysqli_close($link);
?>
<!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>سامانه جستجوی اراضی کارکنان</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body {
background-color: #CFC;
}
</style>
</head>
این هم نمایی از دیتابیسم :
سلام.
بنده یک کد را ارائه می دهم، با الهام از آن، کدهای مورد نظر خود را بنویسید.
یک صفحه 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);
}
?>
کد بالا تنها در صورتی اجرا می شود که کاربر یک عبارت را جستجو کرده باشد. به جای عبارت زیر، کد دلخواه خود برای نمایش اطلاعات را بنویسید :
کد زیر برای اتصال به پایگاه داده می باشد که باید پارامترهای آن را متناسب با پایگاه داده خود تغییر بدهید :
کد پیاچپی:
$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