我有这样的代码,该代码工作:PHP的foreach只有在if语句
$productID = $_POST['productID'];
$sql_product="SELECT * FROM cc_menu_customizations WHERE cust_asoc='$productID'";
$stmt_product = $conn->prepare($sql_product);
$stmt_product->execute();
$result_product = $stmt_product->setFetchMode(PDO::FETCH_ASSOC);
if($result_product > 0) {
while($row = $stmt_product->fetch()) {
$menuArr[$row['cust_title']][] = '<li class="item-inmodal-extra-wrap-options"><p>'. $row['cust_desc'] .'<p></li>';
}
foreach($menuArr as $menuTitle => $productArr) {
echo '<div class="item-inmodal-extra"><h3>'. $menuTitle .'</h3><ul class="item-inmodal-extra-wrap">';
foreach($productArr as $key =>$productname) {
echo $productname;
}
echo '</ul></div>';
}
}
有时候查询会发现$productID
,有时结果没有。但我不知道是什么原因,如果查询没有找到结果阿帕奇仍然给我的错误有关foreach
不存在变量$menuArr
...
不应该这个变量只能是积极的,如果if
声明真正?
编辑
最终结果......好?
$productID = $_POST['productID'];
$sql_product = "SELECT * FROM cc_menu_customizations WHERE cust_asoc= ?";
$stmt_product = $conn->prepare($sql_product);
$sql_count="SELECT count(*) FROM cc_menu_customizations WHERE cust_asoc='$productID'";
$countResult = $conn->query($sql_count);
if($countResult->fetchColumn() > 0) {
$stmt_product->bindParam(':cust_asoc', $productID);
$stmt_product->execute(array($productID));
$stmt_product->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt_product->fetch()) {
$menuArr[$row['cust_title']][] = '<li class="item-inmodal-extra-wrap-options"><p>'. $row['cust_desc'] .'<p></li>';
}
foreach($menuArr as $menuTitle => $productArr) {
echo '<div class="item-inmodal-extra"><h3>'. $menuTitle .'</h3><ul class="item-inmodal-extra-wrap">';
foreach($productArr as $key =>$productname) {
echo $productname;
}
echo '</ul></div>';
}
}
echo '<div class="item-inmodal-extra">
<h3>Special Instructions</h3>
<textarea class="item-inmodal-extra s-intructions" placeholder="Please explicitly state any allergies you have. Requests incurring additional cost are fulfilled at merchant's discretion"></textarea>
</div>';
注意前两行的SQL注入,并学习如何使用预准备语句。 – Raptor
检查行数而不是'$ result_product> 0' –
yeaaahhh它的工作原理! rowCount()感谢队友 –