شنبه ۱ دی ۱۴۰۳ |  عضویت / ورود

بهترین روش ترکیب چند شرط اختیاری در WHERE در MySQL مبتنی بر PHP


Wednesday, 2016 June 29   نویسنده: Hamid   تعداد بازدید: 3671 بار  #آموزش PHP‏   امتیاز متوسط: امتیازی داده نشده است

یکی از مشکلات بزرگ در ایجاد یک Query این است که اگر چند Condition (شرط) که همگی اختیاری باشند بخواهند در WHERE قرار بگیرند، این است که اگر اولین شرط خالی باشد، با توجه به اینکه بین شرط‌ها AND درج می‌شود، دستور با مشکل مواجه می‌شود.

مثلاً چیزی شبیه به این خواهد شد:

SELECT * FROM users WHERE AND x=$x

مشخص است که بلافاصله بعد از WHERE نباید AND قرار گیرد.

برای رفع این مشکل، برای ساخت where_query_string از این کد الگو بگیرید:

    $where = array();


    if($A != 'any'){ // or whatever you need
        $where[] = "A = $A'";
    }
    if($B != 'any'){ // or whatever you need
        $where[] = "B = $B'";
    }
    if($C != 'any'){ // or whatever you need
        $where[] = "C = $C'";
    }

    $where_string = implode(' AND ' , $where);

    $query = "SELECT * FROM table";

    if($where){
        $query .= ' ' . $where_string;
    }

.



ارسال سؤال یا نظر
Tutorials ©