الآخر الأسئلة

لدي جدول في قاعدة البيانات للمنتجات اريد طريقة لعمل فلتر في الكويري بشكل داينمك، بحيث اذا دخل اليوزر انه يريد المنتجات بين تاريخ وتاريخ ويمكن ان يدخل ايضا حالة المنتجات او او الخ.. اريد كويري تقبل اي شرط

  1. ‫‫هذه الإجابة تم تعديلها.

    أهلًا هبة، سؤال مفيد: أولًا نحتاج معرفة ماذا طلب المستخدم وبناء عليه نعمل جملة الطلب. نفترض ان لدينا دالة تستفبل مصفوفة داخلها ما طلب اليوزر بهذا الشكل: function get_products_filter($filter) داخل هذه المصفوفة هناك Keys يمكن ان تكون فارغة (لم يطلبها المستخدم) واخرى لديها قيم (طلبها المستخدم) نحتاج مع‫اقرأ المزيد

    أهلًا هبة، سؤال مفيد:
    أولًا نحتاج معرفة ماذا طلب المستخدم وبناء عليه نعمل جملة الطلب.

    نفترض ان لدينا دالة تستفبل مصفوفة داخلها ما طلب اليوزر بهذا الشكل:

    function get_products_filter($filter)

    داخل هذه المصفوفة هناك Keys يمكن ان تكون فارغة (لم يطلبها المستخدم) واخرى لديها قيم (طلبها المستخدم)

    نحتاج معرفة القيم الفارغة من غيرها وتخزينها في مصفوفة ليتم الفلترة على التي تملك قيم:

      
     {  /* Start Function Body */ 
        $sql = "  SELECT * FROM products"; // Initial Mysql Query 
        extract($filter); //Convert Keys of arrays to varibles
        $conditions = array(); //Define Array
    
        /* Start Check what user need */
        if(! empty($filter['status'])) {
            $conditions[] = "status='$status'";
         }
        if(! empty($filter['dateFrom'])) {
           $conditions[] = " product_date BETWEEN date('$dateFrom') and date('$dateTo') ";
        }
       /* End Check what user need */
     
        // Check if condtions array has values or not
        if(count($conditions) > 0) { 
        // Add Where to Query and put 'And' betwwen any two condtions (Query is string)
          $sql .= " WHERE " . implode(' AND ', $conditions);
        }
    
       // That's all for filters, You can add any filter as we explained above
        
       $result = mysqli_query($conn, $sql); 
       $res = array(); 
        while ($row = mysqli_fetch_assoc($result)) {
            $res[] = $row;
        }
        return $res;
    } /* End Function Body */
    

     

     

    قراءة أقل
    • 1