انجمن‌های فارس وب

نسخه کامل: ساخت موتور جستجو توسط PHP
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
سلام

خوب میخوام روش نوشتن فرم جستجو در دیتبایس با استفاده از PHP/MySQL بگم البته روش کلی و ساده هستش .

فرض میکنیم میخوایم یک کاربر رو که در سایت که ثبت نام کرده پیدا کنیم مشخصاتشو نمایش بدیم .

اسم دیتابیس : Serach

اینم جدول administrator :

CREATE TABLE `administrator` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(100) NOT NULL,
  `password` varchar(50) NOT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


خوب حالا یک فرم جستجو مینویسیم : search.php

<title>Serach From</title>
</head>

<body>
<form action="result.php" method="post">
<h1> Serach User's in Database </h1>
<h3> Keywords </h3>
<div> Keywords : <input type="text" name="search" /> </div>
<div><input type="submit" name="btn" value="Search" /></div>
</form>
</body>


این فرم هم که با متد post اطلاعات رو از طریق text به صفحه result.php میفرسته
خوب حالا میریم سراغ صفحه : result.php

<body>
<h1> Serach Result </h1>
<?php
$search= $_POST['search'];


$host = "localhost";
$user = "root";
$pass = "";
$databse = "cms";
$connect = @mysql_connect($host,$user,$pass) or die('Can Not Connecting');
$select_db = mysql_select_db($databse,$connect) or die ('Can Not Select Databse');

$query = " select * from administrator where username='$search' ";
$result = mysql_query($query);

if($result)
{
    while($line=mysql_fetch_array($result))
    echo "Username is : $line[username] | ";
    echo "Name is : $line[name]";
}
else
{
echo "no keywors";
}
?>
</body>


خوب ما اول مقدار text صفحه اول رو در یک متغیر ریختیم :

$search$_POST['search']; 


کد های بعدیش هم برای ارتباط با بانک اطلاعاتی هستش و ما با استفاده از یک کوئری داخل دیتابیس رو جستحو میکنیم :

[code]$query " select * from administrator where username='$search' ";
$result mysql_query($query);[/code


خوب این دستور برای نمایش جدول administrator در فیلد username هستش ، که ما اینجا مقدار username رو مساوی با $search یعنی همون متغیری که اطلاعات جستجوی ما رو از صفحه اول درون خودش میریزه

خوب دیگه بقیه کد احتیاج به توضیح نداره هر جاشو به مشکل برخوردید در خدمتم

با این کوئری میتونید موتور جستجوتونو دقیقتر کنید :

$result=mysql_query(" select * from administrator where
    `username` like '%$search' or 
    `username` like '$search%' or 
    `username` like '%$search%'
"
); 

مرجع آدرس ها