2011-06-10 95 views
0

下面的代碼我讓人們填寫他們想要的披薩的數量,然後通過使用get的url傳遞選定的比薩ID。從循環表中讀取

<?php // some code that connects to database ?> 
<table> 

     <form method="get" action="oder_process.php"> 
       <?php 
       while (list($pizzaId, $pizzaName, $pizzaNumber, $pizzaPrice) = mysql_fetch_row($resultaat)) 
         { 

          echo  "<tr> 
             <td>".$pizzaName."</td> 
             <td>".$pizzaNumber."</td> 
             <td>".$pizzaPrice."</td> 
             <td> <input type='text' name='pizzas[$pizzaId]'     value='$qty' size='3' /></td> 
             </tr>"; 
         } 
       mysql_close($db);   
       ?> 
      <input type="submit" value="Bestel!" /> 
     </form> 
    </table> 

現在顯示填充量的比薩ID工作得很好。但是,我也想閱讀其他列,比如比薩餅名稱或來自數據庫的描述。然而,我在下面做的不是這樣做的。有任何想法嗎? )

echo "Your order: <br />"; 


      foreach ($_GET['pizzas'] as $pizzaId => $qty)  
      { 
       if ($qty > 0) 
       echo $pizzaId." ".$qty."<br />"; 
       $pizzaSql = mysql_query("SELECT * FROM pizzas where pizza_id =  $pizzaId"); 
       while ($row = mysql_fetch_assoc($pizzaSql)) 
       { 
        echo $row['pizza_name']; 
       } 
      } 
+1

這是什麼在做什麼?如果pizza_name是比薩餅領域,我無法想象爲什麼這不起作用。 – kinakuta 2011-06-10 16:48:07

+1

「不這樣做」?你可以說得更詳細點嗎?在while循環中print_r($ row)時會發生什麼?它不顯示所有的數據嗎? – 2011-06-10 16:48:07

+0

'pizza_id'是數據庫中的數字字段嗎? – kapa 2011-06-10 16:51:01

回答

0

爲什麼的foreach(:在order_process.php文件的
一部分?你不能只是...

if (is_numeric($_GET['pizzaid'])) { 
    $pizzaSql = sprintf("SELECT * FROM orders WHERE pizza_id=%d",$_GET['pizzaid']); 
    $pizzaQuery = mysql_query($pizzaSql); 
    $numPizzas = mysql_num_rows($pizzaQuery); 
    while ($order = mysql_fetch_array($pizzaQuery,MYSQL_ASSOC)) { 
     if ($numPizzas > 0) { 
      echo $orderVariables; 
     } else { 
      echo 'Error: no order exists for that ID thingy'; 
     } 
    } 
} 

我添加了一些小的驗證,假設pizza/order id是一個數值。我不相信任何涉及到從$ _GET數組的腳本沒有一些嚴重的數據驗證第一

0

你可以嘗試在測試卡緊,以確保查詢工作如預期

$pizzaSql = mysql_query("SELECT * FROM pizzas where pizza_id = $pizzaId"); 

if (mysql_error()) { 
    die(mysql_error()); 
} 
+0

感謝您的iput。把if語句放在那裏,但查詢似乎很好。 – Immers 2011-06-10 19:41:55