PDA

View Full Version : چطور با انتخابای متفاوت از فرم کوئری مناسب داشته باشم؟



Mahbobe.prog
دوشنبه 03 آذر 1393, 22:19 عصر
سلام وقت بخیر
من یه فرم دارم که حالت سرچ میخواد داشته باشه و کاربر میتونه اینپوت یا اینپوتایی رو کامل کنه برا سرچ زدن
حالا نمیدونم کوئری رو چطوری بنویسم که بتونه هر چند تا اینپوتکه کاربر پر کنه رو پشتیبانی کنه و نتیجه رو درست بهم بده
لطفا راهنماییم کنین

HaZeM+
سه شنبه 04 آذر 1393, 00:28 صبح
میتونید با

if(empty($_POST['xxx']) || empty($_POST['yyy'])) query1
براساس داده های ارسال شده کوئری مورد نظرتون رو اجرا کنید

Mahbobe.prog
سه شنبه 04 آذر 1393, 11:04 صبح
لطفا بیشتر توضیحش بدین .
تعداد اینپوتا برا سرچ تقریبا زیاد هستش . میخوام که با کمترین خط کد کوئری مناسب رو ایجاد کنم . با این روش که شما گفتین طوری که من متوجه شدم باید همه احتمالایی که ممکنه کاربر اینپوتارو برا سرچ انتخاب کنه رو در نظر بگیرم که ایجوری خط کد زیاد باید بنویسم
لطفا یه روش مناسب بهم بدین ممنون میشم

peymang
سه شنبه 04 آذر 1393, 13:51 عصر
خب کدتون html , یه نمونه کوئری که می خواین اجرا کنین رو بزارین
تا بشه بهتر کمک کرد

blue.web9
سه شنبه 04 آذر 1393, 14:00 عصر
شما از حلقه foreach میتونید استفاده کنید و چک کنید ببیند متغیر مورد نظر وجود دارد یا نه ، به این مثال توجه کنید و با توجه به نیازتون تغییر بدید:


foreach( $_POST as $name => $value){
if( isset( $name ) && $value != '' ){

}
}

Mahbobe.prog
چهارشنبه 05 آذر 1393, 10:32 صبح
ممنون از پاسخاتون . لطف کردین
جوابشو پیدا کردم
اینجا میذارم تا بقیه دوستان که سوالی مشابه سوال من دارن ازش استفاده کنن
توی این کد اگر کاربر برا قسمت سرچ اینپوتی رو خالی بذاره کوئری درست کار میکنه و جواب میده

function filter()
{
if(isset($_POST['com_code']) || isset($_POST['com_nationalCode']) || isset($_POST['com_namePerson']) || isset($_POST['feedback']) ) {
$sql = "SELECT * FROM `com_complaint` WHERE `com_code` LIKE '".$_POST['com_code']."' OR `com_nationalCode` LIKE '".$_POST['com_nationalCode']."' OR `com_namePerson` LIKE '".$_POST['com_namePerson']."' OR `com_state` LIKE '".$_POST['feedback']."' OR `com_mardoud` LIKE '".$_POST['feedback']."' " ; //echo $sql ; $query = mysql_query($sql) ; while($res = mysql_fetch_assoc($query) ) { $array[] = $res ; }
}
}

HaZeM+
چهارشنبه 05 آذر 1393, 10:38 صبح
ممنون از پاسخاتون . لطف کردین
جوابشو پیدا کردم
اینجا میذارم تا بقیه دوستان که سوالی مشابه سوال من دارن ازش استفاده کنن
توی این کد اگر کاربر برا قسمت سرچ اینپوتی رو خالی بذاره کوئری درست کار میکنه و جواب میده

function filter()
{
if(isset($_POST['com_code']) || isset($_POST['com_nationalCode']) || isset($_POST['com_namePerson']) || isset($_POST['feedback']) ) {
$sql = "SELECT * FROM `com_complaint` WHERE `com_code` LIKE '".$_POST['com_code']."' OR `com_nationalCode` LIKE '".$_POST['com_nationalCode']."' OR `com_namePerson` LIKE '".$_POST['com_namePerson']."' OR `com_state` LIKE '".$_POST['feedback']."' OR `com_mardoud` LIKE '".$_POST['feedback']."' " ; //echo $sql ; $query = mysql_query($sql) ; while($res = mysql_fetch_assoc($query) ) { $array[] = $res ; }
}
}

دوست عزیز اگه قصدتون از LIKE استفاده کرذن پیدا کردن مقادیر های مشابه هست باید از % استفاده کنید
LIKE '%".$value."%'