我有产品名称,想选择下载路径。根据它,我得到一个错误
警告: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;
?>
运行查询后是否出错,请先查看
echo mysql_errno() . ": " . mysql_error() . "'n";
同样关于结果,您可能有多个结果,因此您需要使foreach循环以GRT所有这些结果,例如:
while ($row = mysql_fetch_array($sql)) {
}
另一个注意事项是防止使用mysql_*
函数,因为:
此扩展从 PHP 5.5.0 开始已弃用,并将在 未来。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。
在脚本的开头,您已将$itemname='';
声明为字符串然后后来将其用作数组$itemname[]= $keyarray['item_name'.$i];};
。
使用$itemname=array();
将其视为数组。
并使用 PDO
或 mysqli
,因为mysql
已被弃用,并且在更高版本中不受支持