我尝试使用带有PDO样式连接的SESSION创建购物车,但是遇到错误
"注意:未定义的索引:名称在 " "通知:未定义的索引:价格在">
我很确定我的数据库表中存在它,这是代码
<?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
}
提前感谢,我真的不知道如何解决这个问题=(
问题出在一次返回所有行的函数 fetchAll
上。您需要逐个获取行,这可以通过fetch_row
mysqli
方法完成。您应该将其从
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC))
自
while($row = $stmt->fetch_row(PDO::FETCH_ASSOC))
或者,您也可以使用fetchAll
但随后您需要将结果存储在变量中,然后循环访问该变量,如下所示
$all_rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($all_rows as $row)
{
//do the html part & anything
}
你在 pdo 语句中使用 fetchAll,它将返回一个数组。所以你需要通过$row[0]['name']来访问,或者使用
foreach($row as $v){
$v['name'];
}
这是最终的工作代码, 谢谢,你们再次非常感谢
<?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
}
}
?>