2014-02-11 76 views
0

所以這是我的問題。我有2張桌子。一個用於產品細節,另一個用於產品數量。PHP錯誤或邏輯錯誤?

在產品詳細信息中有一個字段狀態應該可用或不可用。然後在產品數量表中有一個qleleft,表示產品可用的數量。現在的問題是我把數量放在4個產品上,意味着沒有剩下的數量,它應該回顯「項目缺貨」。它的工作原理,但只有一個項目。我無法弄清楚,因爲我分析了一切,我認爲沒有問題。這是一個錯誤還是什麼?

這裏是我的代碼:

<?php 
if (isset($_GET['id'])) 
    { 
     include('config.php'); 

     $id=$_GET['id']; 
     $result = mysql_query("SELECT * FROM athan_products WHERE product_id = $id"); 
     while($row3 = mysql_fetch_array($result)) 
      { 
       $resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE '%".$id."%'"); 
       //$resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE =$id"); 
       while($rows = mysql_fetch_array($resultq)) 
        { 
         $qwerty=$rows['qtyleft']; 
        }  
       if ($qwerty !=0){   
        echo '<tr>'; 
        //echo '<td>'.$row3['product_size_name'].'</td>'; 
        echo '<td>'.$row3['price'].'</td>'; 
        echo '<td>'.$row3['description'].'</td>'; 
        echo '<td>'.'<input name="but" type="image" value="'.$row3['id'].'" src="images/button.png" onclick="return myFunction()" />'.'</td>'; 
        echo '</tr>'; 
       } 
       else 
        { 
         echo '<tr>'; 
         //echo '<td>'.$row3['product_size_name'].'</td>'; 
         echo '<td align="center">'.'<h2>'.'Item is out of stock!'.'</td>'; 
         echo '</tr>'; 
         //echo '<td>'.'<h1>'.'"not available"'.'</h1>'.'</td>'; 
        } 
      } 
    } 
?> 
+4

太多的code.Can你只需發佈與您的問題相關的代碼? – Rikesh

+4

**危險**:您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http:// php。淨/手動/ EN/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin

+0

機會是一個邏輯錯誤,但相關的PHP被很多不相關的標記掩蓋了。我確實注意到你正在使用mysql_ *函數,並將用戶輸入直接放入查詢中。前者是不好的,因爲mysql_ *已被棄用,後者是不好的,因爲它會打開你的SQL注入攻擊。 – GordonM

回答

0

我檢查你的代碼,我覺得沒有任何這樣的錯誤,但你需要改變你的查詢。

$resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE '%".$id."%'"); 

這是下面給出的。

$resultq = mysql_query("SELECT * FROM inventory WHERE product_id='".$id."'"); 

希望你能解決你的問題。

謝謝。

+0

哦,我的!我的榮幸先生這個救我的日子(y) – user3295525