سلام وقت بخیر
من یه فرم دارم که حالت سرچ میخواد داشته باشه و کاربر میتونه اینپوت یا اینپوتایی رو کامل کنه برا سرچ زدن
حالا نمیدونم کوئری رو چطوری بنویسم که بتونه هر چند تا اینپوتکه کاربر پر کنه رو پشتیبانی کنه و نتیجه رو درست بهم بده
لطفا راهنماییم کنین
البته به کدهای php کوئری نمیگن
نمیدونم منظور رو درست گرفتم یا نه مثال هم که نذاشتید اما فکر کنم به اینپوت از نوع آرایه نیاز دارید:
<?php
if(!empty($_POST['search'])){
$searches = $_POST['search'];
foreach ($searches as $k => $v) {
printf("SEARCH %s<br>",$v);
}
}
?>
<form action="" method="post">
<input type="text" name="search[]" />
<input type="text" name="search[]" />
<input type="text" name="search[]" />
<input type="submit" value="submit" />
</form>
نحوه دریافت با php هم به همین صورته که نوشتم.
نه منظورم این نیس
منظورمه کوئری که باید برا اس کیوال بنویسم رو میگم
از فرمی که حالت سرچ داره کاربر ممکنه اینپوت یا اینپوتایی رو پر کنه که طبق اون اطلاعات وارد میکنه براش سرچ انجام بشه
الان نمیدونم که چجوری کوئری اس کیوال رو بنویسم که سرچ درست و همون طور نتیجه ای که میخوام رو بهم بده
لطفا راهنماییم کنین :-/
function filter()
{
global $array , $tamplate ;
if(isset($_POST['com_code']))
$q ="`com_code` = '".$_POST['com_code']."'" ;
else
$q = "" ;
if(isset($_POST['com_nationalCode']))
$q1 ="`com_nationalCode` = '".$_POST['com_nationalCode']."'" ;
else
$q1 = "" ;
$sql = "SELECT * FROM `com_complaint` WHERE '".$q."' AND '".$q1."'" ;
$query = mysql_query($sql) ;
while($res = mysql_fetch_assoc($query) )
{
$array[] = $res ;
}
}
شما فرض کنین مثلا محتوای کد خالی باشه پس متغیر q خروجیش خالیه اون وقت توی کوئری اون [size=x-small][font=Monaco, Consolas, Courier, monospace]AND که هس بعد کوئری جواب نمیده چون محتوای q خالیه [/font][/size]
[size=x-small][font=Monaco, Consolas, Courier, monospace]نمیدونم چجوری همینا رو درستش کنم .[/font][/size]
[size=x-small][font=Monaco, Consolas, Courier, monospace]اینپوتا بیشترن من فقط همین دوتا رو گذاشتم برا نمونه [/font][/size]
[size=x-small][font=Monaco, Consolas, Courier, monospace]لطفا راهنماییم کنین[/font][/size]
شما قصد داری این کوئری به گونه باشه که اگر یکی از فیلدهای جستجو پر نشد بازهم نتیجه دریافت کنی پس نباید از AND استفاده بشه باید از OR استفاده کنی. جدول زیر رو ببین تفاوت AND و OR رو وقتی دوتا پارامتر q1 و q2 داریم بیان میکنه:
q1 | q2 | OR | AND
****************************
true | true | true | true
true | false| true | false
false| true | true | false
false| false| false| false
خب حالا فرم زیر رو در نظر بگیر:
<form method="post">
<input type="text" name="q1" />
<input type="text" name="q2" />
<input type="submit" name="submit" value="search" />
</form>
برای دریافت داده از دیتابیس از کوئری زیر متناسب با فرم استفاده میکنیم:$sql=" SELECT * FROM users WHERE first_name like '%".$q1."%' OR last_name like '%".$q2."%'";
اگر در مورد متد like که در کد بالا استفاده شده اطلاعاتی ندارین از لینکهای زیر استفاده کنید:
http://www.w3schools.com/sql/sql_like.asp
http://www.tutorialspoint.com/mysql/mysql-like-clause.htm
خیلی عالی توضیح دادین
ممنونم :rolleyes:
سوال برنامه نویسی دارید؟
ندونستن عیب نیست، نپرسیدن چرا!