[英]Why can't i access variable inside if loops in php
我正在制作簡單的購物車,我真的被最終價格(即$fp
變量)所困擾。 總是有: Notice: Undefined variable: fp in C:\xampp\htdocs...
一切正常,從數據庫中獲取數據,包括價格,但是當我想顯示 $fp(最終價格)時顯示該錯誤。 在if($row['ID'] == $id)
循環之后,我嘗試在 else 語句中將其設置為 0,但沒有發生任何事情,我試圖使其成為全局變量,例如:
global $fp;
$fp = $fp + intval($row['price']);
當我這樣做時,錯誤消失了,但它沒有做任何事情(空白)。 也許我只是坐得太久了,但我無法理解為什么我無法訪問該變量或正在發生的事情。
<section class="cart">
<?php
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php $fp;?> €</h2>
</section>
function echoItem($productIMG, $productPrice, $znacka, $typ_oblecenia){
$product = "
<article class='clearfix'>
<img src='../img/$productIMG' alt='hihi' style='width: 10%;'>
<div class='info-text-cart'>
<p>specific type: $typ_oblecenia</p>
<p>Brand: $znacka</p>
<button><i class='fas fa-times'></i></button>
</div>
<div class='important-info-cart'>
<p>Price: $productPrice €</p>
<p>quantity: 1</p>
</div>
</article>
";
echo $product;
}
ps:在打字方面我擁有一切。 我只是將其中涉及的一些內容翻譯成英文,這樣更有意義。
$fp從未像前面提到的那樣被聲明過。
如果您將其聲明為全局(或不聲明),您應該能夠在第二個代碼塊上使用它,您嘗試時沒有看到任何內容的原因是因為您忘記了回顯它。
一個工作示例是:
<section class="cart">
<?php
$fp = 0;
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php echo $fp;?> €</h2>
</section>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.