2016-09-19 47 views
0
  $query_sub = "SELECT * FROM `product_mappings` LEFT JOIN `product_list` ON `product_mappings`.ID_PRODUCT =`product_list`.ID WHERE ID_USER='" . $row{'ID'} . "'"; 
      $result_sub = mysql_query($query_sub); 
      if ($result_sub && mysql_num_rows($result_sub) > 0) 
      { 
       $data_products = array(); 
       while ($row_sub = mysql_fetch_array($result_sub)) 
       { 
        $data_sub = array(); 
        $data_sub["ID"] = $row_sub{'ID'}; 
        $data_sub["product"] = $row_sub{'PRODUCT'}; 


          $query_sub_unactive = "SELECT * FROM `product_list` WHERE ID != '" . $row_sub{'ID'} . "' "; 
               $result_sub_unactive = mysql_query($query_sub_unactive); 
               if ($result_sub_unactive && mysql_num_rows($result_sub_unactive) > 0) 
               { 
                $data_products_unactive = array(); 
                while ($row_sub_unactive = mysql_fetch_array($result_sub_unactive)) 
                { 
                 $data_sub_unactive = array(); 
                 $data_sub_unactive["ID"] = $row_sub_unactive{'ID'}; 
                 $data_sub_unactive["productss"] = $row_sub_unactive{'PRODUCT'}; 


                 array_push($data_products_unactive, $data_sub_unactive); 

                } 
                $data_current["productsUnactive"] = $data_products_unactive; 
               } 


        array_push($data_products, $data_sub); 


       } 

       $data_current["products"] = $data_products; 

嗨,大家好!這是查詢,我應該只選擇尚未在主查詢中的產品。我正在檢查ID是否與您所看到的相同。例如,我加載了4個主要查詢的產品(15個),在這種情況下,無效的應該加載11個項目,但加載了14個項目,所以它從列表中「移除」了一個產品。任何線索?SQL不只顯示一個產品而是更多

謝謝!

+2

我會找到你的問題更容易消化,如果你只是有SQL查詢,在一個單獨的部分,而不是PHP代碼亂碼。 –

+0

警告mysql_query,mysql_fetch_array,mysql_connect等擴展在PHP 5.5.0中被棄用,並且在PHP 7.0.0中被刪除。相反,應該使用MySQLi或PDO_MySQL擴展。 – Melchizedek

+0

@TimBiegeleisen對不起,我不知道你的意思。我很新的PHP,SQL和那些東西。 – JMusic

回答

1
SELECT * FROM `product_list` WHERE ID != '" . $row_sub{'ID'} . "' "; 

此查詢一次檢查1個ID,並且總是要返回其他14行。你需要的是一個「NOT IN」查詢是這樣的:

SELECT * FROM `product_list` WHERE ID NOT IN ("id1","id2","id3","id4"); 
+0

如果我總是想要返回相同的ID,這將做它的工作。問題在於ID可能會發生變化(如果您更改了哪些程序需要激活,哪些不需要)。 – JMusic

+1

@JMusic:穆罕默德說的是,用一個ID查找缺失的產品是沒有意義的,因爲主要查詢會爲您提供多個ID。因此,您無法在循環中檢索缺少的產品,只給出一個ID。它必須在所有ID的循環之外完成。 –

+0

啊好吧現在我明白了。將採取角度照顧它然後。謝謝 ! – JMusic

相關問題