PDA

نسخه کامل مشاهده نسخه کامل : ایجاد جستجوگر بر اساس دو فیلد توسط phpmysql



poomaka
18-09-2012, 12:35
در صفحه اصلیم اینو نوشتم
ش <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>&nbsp;</td>
<td><input type="submit" value="search" /></td>
</tr>
</table>
</fieldset>
</form>


</form>
و تو صفحه search.php هم اینو ولی عمل نمیکنه

ش<?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 * FROM main1 WHERE name LIKE \"+$key+'\' and sys_name LIKE \"+$key+'\' and month \"+$key+'\' and 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. -->
}

?>


کمممممممممممممممممممممممم مممممکککککککککککککککککککک ک .............بدجوری کارم گیره

m.m.m5651
18-09-2012, 15:58
اگه ارور میده لطفا ارور رو بنویسید.
چیزی که فهمیدم اینه که زیاد خوب نفهمیدید که like چیکار می کنه. در واقع کوئری پیدا کردن پست هاتون مشکل داره.
کلا هم خود الگوریتمش مشکل داشت هم شیوه ی نوشتنش.
اگه بخوایم شیوه ی نوشتنش رو درست کنیم میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که این هم بازم از لحاظ الگوریتمش مشکل داره. با این کد درواقع ما داریم میگیم که:
داخل جدول main1 بگرد دنبال سری ای که هم توی اسمش $key رو داشته باشه، و هم داخل sys_nameش، و هم ماه و روزش داخلش $key رو داشته باشه. با این طرز در واقع دارید میگید که باید کاربر هم sys_name مطلب، هم name مطلب، هم month مطلب، هم day مطلب رو داشته باشه، که 99.99% کاربر نمیتونه همه ی اینا رو با هم داشته باشه.
پس باید جای and ها از or استفاده کنیم.

کلا شیوه ی خوبی رو برای نوشتنش استفاده نکردید. خیلی میشد بهتر نوشت کل کد جستجو رو.همه ی نتایج رو بریزید داخل array، بعدش با foreach استخراجشون کنید، در ضمن جای die بهتر بود از if و else if استفاده می کردید، چون die کل قالب رو هم قطع می کنه و باعث میشه بقیه ی قالب صفحه لود نشه.

sh.n.n786
18-09-2012, 20:09
کارت به چی گیره یه توضیحی یه چیزی کد گزاشتی فکر کردی از غیب میرسه :blink::blink::blink::blink:

poomaka
19-09-2012, 09:38
ممنونم از زاهنما یی ارزشمندتون.............من خیلی تازه کارم ولی رئیسم گفته تا یک هفته تحویل بده ..........خیلی تشکر