我尝试使用带有PDO样式连接的SESSION创建购物车,但我面临错误
"注意:未定义的索引:名称在" "注意:未定义的索引:价格在&#34 ;
我很确定我的数据库表中存在,这是代码
<?php
$stmt = $conn->prepare('SELECT * from tbl_product');
$stmt->execute();
if($stmt->fetchColumn() > 0)
{
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC))
{
?>
<div class="col-md-4">
<form method="post" action="../ppuyakul/cata_main?action=add&id=<?php echo $row["id"]; ?>">
<div style="border:1px solid #333; background-color:#f1f1f1; border-radius:5px; padding:16px;" align="center">
<img src="<?php echo $row["image"]; ?>" class="img-responsive" /><br />
<h4 class="text-info"><?php echo $row["name"] ?></h4>
<h4 class="text-danger">$ <?php echo $row["price"]; ?></h4>
<input type="text" name="quantity" class="form-control" value="1" />
<input type="hidden" name="hidden_name" value="<?php echo $row["name"]; ?>" />
<input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>" />
<input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success" value="Add to Cart" />
</div>
</form>
</div>
<?php
}
在此先感谢,我真的不知道如何解决这个问题=(
答案 0 :(得分:1)
问题在于函数fetchAll
,它一次返回所有行。您需要逐个获取行,这可以通过fetch_row
的{{1}}方法完成。你应该从
mysqli
到
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC))
或者,您也可以使用while($row = $stmt->fetch_row(PDO::FETCH_ASSOC))
但是您需要将结果存储在变量&amp;然后循环遍历该变量,如下所示
fetchAll
答案 1 :(得分:0)
您在pdo语句中使用fetchAll,它将返回一个数组。所以你需要通过$ row [0] ['name']访问,或者使用
foreach($row as $v){
$v['name'];
}
答案 2 :(得分:0)
这是最终的工作代码,谢谢,你们再次真的很感激
<?php
$stmt = $conn->prepare('SELECT * from tbl_product');
$stmt->execute();
if($stmt->fetchColumn() > 0)
{
$all_rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($all_rows as $row)
{
?>
<div class="col-md-4">
<form method="post" action="../ppuyakul/cata_main.php?action=add&id=<?php echo $row["id"]; ?>">
<div style="border:1px solid #333; background-color:#f1f1f1; border-radius:5px; padding:16px;" align="center">
<img src="<?php echo print_r($row)["image"]; ?>" class="img-responsive" /><br />
<h4 class="text-info"><?php echo $row["name"] ?></h4>
<h4 class="text-danger">$ <?php echo $row["price"]; ?></h4>
<input type="text" name="quantity" class="form-control" value="1" />
<input type="hidden" name="hidden_name" value="<?php echo $row["name"]; ?>" />
<input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>" />
<input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success" value="Add to Cart" />
</div>
</form>
</div>
<?php
}
}
?>