• 2 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جستجو کردن در دیتابیس
#1
سلام اساتید گرامی من یک مشکلی با نحوه سرچ کردن توی دیتابیس پیدا کردم من چنتا فیلد دارم 3 تا سلکت باکس و 2 تا چک باکس که میخوام با اینا توی دیتابیسم جستجو انجام بدم من از کوئری های زیر برای جستجوی فیلدهای ورودی استفاده میکنم
کد پی‌اچ‌پی:
if (isset($_POST['reshte']) && !empty($_POST['reshte'] ))
                                            {
                                              
$cl=$db->fetch_all("select * from signup WHERE  `uniname`='".$_SESSION['cls']."' && reshte = '".$_POST['reshte']."'");
                                            }
                                         if (isset(
$_POST['maghta']) && !empty($_POST['maghta'] ))
                                            {
                                              
$cl=$db->fetch_all("select * from signup WHERE  `uniname`='".$_SESSION['cls']."' && maghta = '".$_POST['maghta']."'");
                                            }
                                         if (isset(
$_POST['edc']) && !empty($_POST['edc'] ))
                                            {
                                              
$cl=$db->fetch_all("select * from signup WHERE  `uniname`='".$_SESSION['cls']."' && adcname = '".$_POST['edc']."'");
                                            } 
این کدها وقتی هر کدام از فیلدها به صورت تک تک انتخاب میشن کاملا سالم کار میکنند مشکل من اون چک باکس ها هئست که نمیتونم با استفاده از اونها جستجو انجام بدم که تایید شده از دیتابیس مقدار 1 و نشده مقدار 0 داره این یک مشکل.
دومین مشکل هم ترکیب این فیلدها است مثلا کاربر میخواد در مقطع تحصیلی کاردانی رشته مکانیک رو از گروه اموزشی مکانیک انتخاب کنه که تایید شده باشه رو انتخاب کنه
چطوری کوئری بزنم به دیتابیس؟CoolCoolCool
  پاسخ
تشکر شده توسط :
#2
سوال اول تون رو که نفهمیدم سوال دومتون رو که فکر میکنم فهمیدم اینجوری حل میشه:
اول یه رشته where خالی میگیرید بعد باتوجه به شرایط پرش میکنید و دست آخر کوئری رو اجرا میکنید:
کد پی‌اچ‌پی:
$where '';
if (isset(
$_POST['reshte']) && !empty($_POST['reshte'] ))
{
  
$where .= "reshte = '".$_POST['reshte']."' && ";
}
if (isset(
$_POST['maghta']) && !empty($_POST['maghta'] ))
{
  
$where .= "maghta = '".$_POST['maghta']."' && ";
}

$cl=$db->fetch_all("select * from signup WHERE `uniname`='".$_SESSION['cls']."' ".rtrim("&&".$where,'& ')); 
  پاسخ
تشکر شده توسط :
#3
سلام ممنون
ببخشید یادم رفت تصویر اون قسمت رو اپلود کنم
اگه تصویر رو ببینید متوجه کلیات کاری که میخوام بکنم میشید


فایل‌های پیوست تصاویر بندانگشتی
   
  پاسخ
تشکر شده توسط :
#4
اساتید لطفا کمکم کنید
  پاسخ
تشکر شده توسط :
#5
کد پی‌اچ‌پی:
$where '';

if(isset(
$_POST['active']) || isset($_POST['inactive'])){
    if(isset(
$_POST['active'])){
        
$where "status = 'acitve' && "
    
}
    if(isset(
$_POST['inactive'])){
        
$where "status = 'inacitve' && "
    
}
}

if (isset(
$_POST['reshte']) && !empty($_POST['reshte'] ))
{
  
$where .= "reshte = '".$_POST['reshte']."' && ";
}
if (isset(
$_POST['maghta']) && !empty($_POST['maghta'] ))
{
  
$where .= "maghta = '".$_POST['maghta']."' && ";
}

$cl=$db->fetch_all("select * from signup WHERE `uniname`='".$_SESSION['cls']."' ".rtrim("&&".$where,'& ')); 
فقط این کد وقتی هیچ کدوم از چک باکس ها رو تیک نزنید جفتشون رو در نظر میگیره.....
  پاسخ
تشکر شده توسط : kasbookar


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان