2013-10-10 83 views
0

我有產品名稱並想選擇下載路徑。根據它,我得到一個錯誤pdt腳本不會從db中選擇

警告:mysql_num_rows()預計參數1是資源,鑑於布爾...

這就像不存在這樣的條目。

<?php 
$keyarray=array('num_cart_items'=>2, 'item_name2'=>'5', 'item_name1'=>'6'); 
$itemname=''; 
for ($i=1; $i<= $keyarray['num_cart_items'] ;$i++){ 
     $itemname[]= $keyarray['item_name'.$i];}; 

    foreach($itemname as & $var){ 
    echo $var; 
    $sql = mysql_query("SELECT * FROM products WHERE product_name='$var' "); 
    $productCount = mysql_num_rows($sql); // count the output amount 
    $checkout_path =""; 
    if ($productCount > 0) { 

     // get path 
     $row = mysql_fetch_array($sql); 
       $path = $row["path"]; 
       $checkout_path[]=array('path'=>$path); 

      echo $checkout_path; 
     } 
    } 
    //echo $checkout_path; 
?> 
+0

什麼'$ var'的價值是不支持?如果有任何不良字符(如單引號),它會打破您的查詢!你真的應該使用MySQLi/PDO,所以你可以準備這個。 –

+0

這是整個劇本嗎?我看不到數據庫的連接字符串。 – aaron

回答

0

先看看,如果你在運行查詢

echo mysql_errno() . ": " . mysql_error() . "\n"; 

也對之後的結果有一個錯誤,你可能會因此你需要做foreach循環GRT個個都不止一個結果像:

while ($row = mysql_fetch_array($sql)) { 

} 

另一注避免使用mysql_*功能,因爲:

此擴展從PHP 5.5.0起已棄用,未來將在 中刪除。相反,應該使用MySQLi或PDO_MySQL擴展。

0

在您已聲明$itemname='';作爲一個字符串 再後來就用它作爲一個數組$itemname[]= $keyarray['item_name'.$i];};腳本的開始。使用$itemname=array();將其作爲數組來分開。

而且請使用PDOmysqli,如mysql被棄用,在以後的版本