maryam.20
جمعه 23 فروردین 1392, 19:34 عصر
سلام به همه دوستان. :لبخندساده:
من میخوام یه کوئری بنویسم که برام کار سرچ رو انجام بده، یعنی دیتا ها از فرمی میاد که تحت عنوان سرچ هست و این یعنی میتونه بعضی فیلد ها خالی باشه.
مشکل اینجاست که اگه همه فیلدها رو پرنکنم اونها رو با صفر یکی میکنه مثلن وزن رو صفر درنظر میگیره و جستجو میکنه. من میخوام اگه کاربر فیلدی رو پرنکرد با "همه موارد" یکی باشه! یعنی اگه وزن خالی بود روی وزن حساس نشه و بره همه کالاها با همه وزنهارو لیست کنه اگر هم فیلدی پر بود چک کنه با فیلد مربوطش.
وقتی هم از عملگر مقایسه ای "<=" یا ">=" استفاده میکنم بدون توجه به هیچ شرطی میره همه کالا هارو برام لیست میکنه میاره. :افسرده:
فرم جستجو:
<form action="search.php" method="post">
لیست انتخابی:
<select name="select1">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select><br>
فیلد اول: <input name="field1" type="text"><br>
قیمت : از <input name="min_gheimat" type="text"> تا <input name="max_gheimat" type="text"><br>
ابعاد: از <input name="min_metr" type="text"> تا <input name="max_metr" type="text"> <br>
مساحت: از <input name="min_masahat" type="text"> تا <input name="max_masahat" type="text"><br>
وزن: از <input name="min_vazn" type="text"> تا <input name="max_vazn" type="text"> <br>
<input type="submit" value="جستجو" />
</form>
کوئری
mysql_query("
SELECT * FROM `kala`
WHERE (select1 = '{$_POST['select1']}')
AND (field1 = '{$_POST['field1']}')
OR (gheimat > '{$_POST['min_gheimat']}'
AND gheimat < '{$_POST['max_gheimat']}')
OR (metr > '{$_POST['min_metr']}'
AND metr < '{$_POST['max_metr']}')
OR (masahat > '{$_POST['min_masahat']}'
AND masahat < '{$_POST['max_masahat']}')
OR (vazn > '{$_POST['min_vazn']}'
AND vazn < '{$_POST['max_vazn']}')
");
من میخوام یه کوئری بنویسم که برام کار سرچ رو انجام بده، یعنی دیتا ها از فرمی میاد که تحت عنوان سرچ هست و این یعنی میتونه بعضی فیلد ها خالی باشه.
مشکل اینجاست که اگه همه فیلدها رو پرنکنم اونها رو با صفر یکی میکنه مثلن وزن رو صفر درنظر میگیره و جستجو میکنه. من میخوام اگه کاربر فیلدی رو پرنکرد با "همه موارد" یکی باشه! یعنی اگه وزن خالی بود روی وزن حساس نشه و بره همه کالاها با همه وزنهارو لیست کنه اگر هم فیلدی پر بود چک کنه با فیلد مربوطش.
وقتی هم از عملگر مقایسه ای "<=" یا ">=" استفاده میکنم بدون توجه به هیچ شرطی میره همه کالا هارو برام لیست میکنه میاره. :افسرده:
فرم جستجو:
<form action="search.php" method="post">
لیست انتخابی:
<select name="select1">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select><br>
فیلد اول: <input name="field1" type="text"><br>
قیمت : از <input name="min_gheimat" type="text"> تا <input name="max_gheimat" type="text"><br>
ابعاد: از <input name="min_metr" type="text"> تا <input name="max_metr" type="text"> <br>
مساحت: از <input name="min_masahat" type="text"> تا <input name="max_masahat" type="text"><br>
وزن: از <input name="min_vazn" type="text"> تا <input name="max_vazn" type="text"> <br>
<input type="submit" value="جستجو" />
</form>
کوئری
mysql_query("
SELECT * FROM `kala`
WHERE (select1 = '{$_POST['select1']}')
AND (field1 = '{$_POST['field1']}')
OR (gheimat > '{$_POST['min_gheimat']}'
AND gheimat < '{$_POST['max_gheimat']}')
OR (metr > '{$_POST['min_metr']}'
AND metr < '{$_POST['max_metr']}')
OR (masahat > '{$_POST['min_masahat']}'
AND masahat < '{$_POST['max_masahat']}')
OR (vazn > '{$_POST['min_vazn']}'
AND vazn < '{$_POST['max_vazn']}')
");