2016-09-19 62 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

相关问题