View Full Version : ایجاد جستجوگر بر اساس دو ورودی
pooyamakarachi
سه شنبه 28 شهریور 1391, 09:29 صبح
سلام دوستان !
من باید برروی پایگاه داده ام یک search بر اساس چندتا موضوع قرار بدم یعنی مثلا نام x در تاریخ y برام فعالیت هاشو بیار .تو صفحه اصلی این برنامه رو نوشتم
<form action="search.php" method="get">
<fieldset>
<table>
<tr>
<td> name:</td>
<td><input name="tag" type="text" id="tag" size="15"/></td>
</tr>
<tr>
<td> sys_name: </td>
<td><input sys_name="tag" type="text" id="tag" size="15"/></td>
</tr>
<tr>
<td>month:</td>
<td><input month="tag" type="int" id="tag" size="15"/></td>
</tr>
<tr>
<td>day:</td>
<td><input day="tag" type="int" id="tag" size="15"/></td>
</tr>
<tr><td> </td>
<td><input type="submit" value="search" /></td>
</tr>
</table>
</fieldset>
</form>
</form>
ولی صفحه search .php مشکل داره لطفا کمکم کنید
pooyamakarachi
سه شنبه 28 شهریور 1391, 09:33 صبح
این هم صفحه search.php هست که قسمت $sql مشکل داره
<?php
if(!isset($_GET["q"]))
die("The Search key word is not set!");
$key = $_GET["q"];
if($key == "")
die("The Search key word must be entered!");
$DbConn = mysql_connect("localhost", "root", "emami" ) or die(mysql_error());
mysql_select_db("technical_unit",$DbConn) or die("Can Not Select DataBase Because: ". mysql_error());
$sql = "SELECT main1.name, main1.function FROM main1 WHERE main1.name LIKE '%$key%' OR main1.sys_name '%$key%' OR main1.month '%$key%' OR main1.day '%$key%' ";
$SearchResult = mysql_query($sql) or die(mysql_error(). "<br />SQL: ". $sql);
$TotalResults = mysql_num_rows($SearchResult);
if($TotalResults <= 0)
die("Not found any record for your key word!");
for($i = 0; $i != $TotalResults; $i++ )
{
//<!-- Start of Print Results...
$TextTitle = mysql_result($SearchResult, $i, 1);
$TextBody = mysql_result($SearchResult, $i, 2);
print($TextTitle ." ==> ". $TextBody ."<br /><br />");
//End of Print Results. -->
}
?>
miladamirzadeh
سه شنبه 28 شهریور 1391, 12:47 عصر
ازت یه خواهش دارم. لطفاً کدهو در تگ های مربوطه بذار. ممنون.
مثل این:
<?php
if(!isset($_GET["q"]))
die("The Search key word is not set!");
$key = $_GET["q"];
if($key == "")
die("The Search key word must be entered!");
$DbConn = mysql_connect("localhost", "root", "emami" ) or die(mysql_error());
mysql_select_db("technical_unit",$DbConn) or die("Can Not Select DataBase Because: ". mysql_error());
$sql = "SELECT main1.name, main1.function FROM main1 WHERE main1.name LIKE '%$key%' OR main1.sys_name '%$key%' OR main1.month '%$key%' OR main1.day '%$key%' ";
$SearchResult = mysql_query($sql) or die(mysql_error(). "<br />SQL: ". $sql);
$TotalResults = mysql_num_rows($SearchResult);
if($TotalResults <= 0)
die("Not found any record for your key word!");
for($i = 0; $i != $TotalResults; $i++ )
{
//<!-- Start of Print Results...
$TextTitle = mysql_result($SearchResult, $i, 1);
$TextBody = mysql_result($SearchResult, $i, 2);
print($TextTitle ." ==> ". $TextBody ."<br /><br />");
//End of Print Results. -->
}
?>
miladamirzadeh
سه شنبه 28 شهریور 1391, 12:51 عصر
ثانیا error رو هم ذکر کن.
ثالثاً منظورت از کوئری ها اینه:
SELECT `main1`.`name`, `main1`.`function` FROM `main1`
WHERE `main1`.`name` LIKE '%$key%'
OR `main1`.`sys_name` LIKE '%$key%'
OR `main1`.`month` LIKE '%$key%'
OR `main1`.`day` LIKE '%$key%'
pooyamakarachi
چهارشنبه 29 شهریور 1391, 10:20 صبح
ببخشید نظم رو بهم زدم اخه تگ رو بلد نیستم چطوری بگذارم
pooyamakarachi
چهارشنبه 29 شهریور 1391, 10:25 صبح
The Search key word is not set!
این ارور که خودم دادم رو میده
miladamirzadeh
چهارشنبه 29 شهریور 1391, 18:02 عصر
چطور برنامه ات رو فراخوانی و تست می کنی؟
pooyamakarachi
شنبه 01 مهر 1391, 11:02 صبح
یه سرور xampp نصب کردم و از طریق locallhost برنامه هایی رو که نوشتم اجرا میکنه
miladamirzadeh
شنبه 01 مهر 1391, 12:07 عصر
منظورت اینه که میای تو مرورگر می نویسی:
localhost/mysite/search.php?q=test
برنامه شما مشکل دیگه ای داره. اگه اسم فایل اصلی (فرم HTML) شما index.html باشه، بعد از فشردن دکمه submit آدرس زیر برای مرورگر ارسال می شود:
http://localhost/mysite/search.php?tag=myname
که myname مقدار فیلد name هست.
اول فرم HTML ات رو این شکلی کن:
<form action="search.php" method="get">
<fieldset>
<table>
<tr>
<td> name:</td>
<td><input name="name" type="text" size="15"/></td>
</tr>
<tr>
<td> sys_name: </td>
<td><input name="sys_name" type="text" size="15"/></td>
</tr>
<tr>
<td>month:</td>
<td><input name="month" type="int" size="15"/></td>
</tr>
<tr>
<td>day:</td>
<td><input name="day" type="int" size="15"/></td>
</tr>
<tr><td> </td>
<td><input type="submit" value="search" /></td>
</tr>
</table>
<fieldset>
</form>
</form>بعد توی فایل php به جای اینکه بیای از متغیر نامشخص q استفاده کنی بنویس:
$name=$_GET["name"];
$sys_name=$_GET["sys_name"];
$month=$_GET["month"];
$day=$_GET["day"];
حالا اگه می خوای که کلاً جستجوت رو بر اساس یک کلید انجام بدی خوب فرم HTML رو تک فیلده بذار. دقت کن به فیلد name. یا اون رو برابر با q قرار بده یا فایل php رو اصلاح کن. موفق باشی. :لبخند:
pooyamakarachi
سه شنبه 04 مهر 1391, 11:44 صبح
واااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااییییییییییییییییی خیلی ممنونم
pooyamakarachi
سه شنبه 04 مهر 1391, 14:45 عصر
من یه فایل search دیگه هم درست کردم میشه ایراد اینم بگید .مشکلی که پیش میاد اینه که به جای اینکه اون چیزی که من میخواهم رئ بیاره کل جدول رو میاره
if ((isset($_POST["insert"])) && ($_POST["insert"] == "true")) {
$f="";
$SQL = "SELECT * FROM main1 ";
if(isset($_POST["name"])&& $_POST["name"]!=""){
if($f!="") $f.=" or ";
$f.=" name Like '%". $_POST["name"]."%'";
}
if(isset($_POST["month"])&& $_POST["month"]!=""){
if($f!="") $f.=" or ";
$f.=" month Like '%". $_POST["month"]."%'";
}
if(isset($_POST["day"])&& $_POST["day"]!=""){
if($f!="") $f.=" or ";
$f.=" day =". $_POST["day"]."%'";
}
$con1 = mysql_pconnect("localhost", "root", "123") or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db("technical_unit", $con1);
$Record = mysql_query($SQL, $con1) or die(mysql_error());
$row= mysql_fetch_assoc($Record);
$totalRows = mysql_num_rows($Record);
}
pooyamakarachi
سه شنبه 04 مهر 1391, 14:55 عصر
راستی من تو تگ php گذاشتم ولی دوباره همون شکلی شد که
miladamirzadeh
سه شنبه 04 مهر 1391, 15:48 عصر
راستی من تو تگ php گذاشتم ولی دوباره همون شکلی شد که
با فایرفاکس نسخه های جدید انجمن رو مرور کن. تفاوت را خواهی دید!
miladamirzadeh
سه شنبه 04 مهر 1391, 15:52 عصر
==================================================
من یه فایل search دیگه هم درست کردم میشه ایراد اینم بگید .مشکلی که پیش میاد اینه که به جای اینکه اون چیزی که من میخواهم رئ بیاره کل جدول رو میاره ==================================================
خسته نباشی! به کدت دقت کن! داری $f رو میسازی ولی $SQL رو اجرا می کنی. اینجوری که نمیشه.
pooyamakarachi
شنبه 08 مهر 1391, 10:15 صبح
==================================================
خسته نباشی! به کدت دقت کن! داری $f رو میسازی ولی $SQL رو اجرا می کنی. اینجوری که نمیشه.
وقتی $f رو وارد کردم داخل دستور my sql query کلا error داد .درست متوجه نشدم چیکار کنم میشه اصلاح شده اشو بگذارید برام ؟؟؟؟؟؟؟
pooyamakarachi
شنبه 08 مهر 1391, 10:59 صبح
راستی اگر بخوام که از نتایج که نشون داده تو فایل word یک کپی بگیرم .چه جوری برنامشو بنویسم ؟؟؟؟؟؟؟؟؟؟؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.