问题描述
我目前正在开展一个学校项目,我必须为一家酒类商店制作一个商店页面。为此,我们有一个包含商店销售产品的数据库。我想让产品出现在卡片的页面上,就像您在其他网上商店中看到的一样。但是我遇到了无法解决的问题。
当商店里只有 1 件产品时,它按照预期形成了一张不错的卡片,但是当我向数据库添加第二件商品时,它会将卡片放入现有卡片中,而不是放在卡片旁边。我已经包含了当前页面的代码和屏幕截图。如果您需要更多,我很乐意为您提供所需的信息。
<?PHP include "pdo.PHP" ?>
<?PHP
$sql = 'SELECT * FROM product';
$products = $pdo -> prepare($sql);
$products -> execute();
$producten = $products ->fetchAll(); ?>
<!-- Include header.PHP. Bevat: header,body tag & donkere navigatiebalk -->
<?PHP include 'header.PHP' ?>
<div class="container tc-white">
<?PHP
// if statement om te kijken of er waarden zijn in de array producten
if($producten != NULL){
// Array keys omzetten in variabelen.
foreach($producten as $product)
$id = $product["productID"];
$name = $product["naam"];
$land = $product["land"];
$inventory = $product["voorraad"];
$price = $product["prijs"];
$brand = $product["producent"];
}
// Als er geen waarden in de array zijn gevonden:
else{
echo "<h3> Geen producten gevonden </3>";
}
?>
<?PHP
foreach($producten as $cardloop)
echo
'<div class="col-md-4 mt-4 mt-sm-0 card-container">
<div class="card text-center product p-4 pt-5 border-0 h-100 rounded-0">
[product-image]
<div class="card-body p-4 py-0 h-xs-440p">' .
$name . " " . $price;
?>
</div>
<p class="btn w-100 px-4 text-center mx-auto">
[button]
</div>
</div>
</div>
<!-- Include footer.PHP. bevat: body sluit tag -->
<?PHP include 'footer.PHP' ?>
希望你能帮助我。
提前致谢!
解决方法
你必须正确打开和关闭 foreach
<?php include "pdo.php" ?>
<?php
$sql = 'SELECT * FROM product';
$products = $pdo -> prepare($sql);
$products -> execute();
$producten = $products ->fetchAll(); ?>
<!-- Include header.php. Bevat: header,body tag & donkere navigatiebalk -->
<?php include 'header.php' ?>
<div class="container tc-white">
<?php
// if statement om te kijken of er waarden zijn in de array producten
if($producten != NULL){
// Array keys omzetten in variabelen.
foreach($producten as $product)
{
$id = $product["productID"];
$name = $product["naam"];
$land = $product["land"];
$inventory = $product["voorraad"];
$price = $product["prijs"];
$brand = $product["producent"];
} // added braces at the begin and end of foreach
}
// Als er geen waarden in de array zijn gevonden:
else{
echo "<h3> Geen producten gevonden </3>";
}
?>
<?php
foreach($producten as $cardloop)
{ // added braces at the begin and end of foreach
echo
'<div class="col-md-4 mt-4 mt-sm-0 card-container">
<div class="card text-center product p-4 pt-5 border-0 h-100 rounded-0">
[product-image]
<div class="card-body p-4 py-0 h-xs-440p">' .
$name . " " . $price;
?>
</div>
<p class="btn w-100 px-4 text-center mx-auto">
[button]
</div>
</div>
<?php } ?>
</div>
<!-- Include footer.php. bevat: body sluit tag -->
<?php include 'footer.php' ?>