我会在数据库中提供数据并在PHP中将会话分配为数组。我在while循环中分配值会话。我认为会话是一个数组,但我看,我查看不是一个数组。我想在创建会话的同时提供数据库的数据,并在此会话中将数据库的数据作为数组提供。在另一页中使用此会话与foreach之后。
代码:
<?php
$vericek15 = $baglanti10 -> prepare("select * from sepet where kulad = :kulad");
$vericek15 -> bindParam(':kulad', $kulad8);
$vericek15 -> execute();
$vericek16 = $baglanti10 -> prepare("select * from sepet where kulad = ?");
$vericek16 -> bindParam(1, $kulad8);
$vericek16 -> execute();
$vericek16say = $vericek16 -> rowCount();
if ($vericek16say == 0) {
?>
<div id="surunyokl">
<label>Your cart is empty</label>
</div>
<style type="text/css">
#surunyokl{
position: absolute;
top: 325px;
left: 625px;
}
</style>
<?php
} else {
?>
<div id="sepettablo">
<table>
<tr>
<th style="text-align: center;">Image of product</th>
<th style="text-align: center;">Product</th>
<th style="text-align: center;">Piece</th>
<th style="text-align: center;">Price</th>
<th style="text-align: center;">Delete</th>
</tr>
<?php
while($bilgiler15 = $vericek15 -> fetch(PDO::FETCH_ASSOC)){
$vericek17 = $baglanti10 -> prepare("select * from urunlist where urunad = :urunad");
$vericek17 -> bindParam(':urunad', $bilgiler15['urunad']);
$vericek17 -> execute();
$vericek18 = $baglanti10 -> prepare("select * from urunlistresim where urunad = :urunad2");
$vericek18 -> bindParam(':urunad2', $bilgiler15['urunad']);
$vericek18 -> execute();
$bilgi18 = $vericek18 -> fetch();
while($bilgiler17 = $vericek17 -> fetch(PDO::FETCH_ASSOC)){
$_SESSION['b'] = $bilgiler15['urunad'];
$_SESSION['urunadi'] = $bilgiler15['urunad'];
$_SESSION['urunadet'] = $bilgiler15['urunadet'];
$_SESSION['urunfiyat'] = $bilgiler17['urunfiyat'];
if ($bilgiler17['urunadet'] == 0) {
}
echo '<tr>';
echo '<td><img src="'.$bilgi18['resimyol'].'" height="100" width="100"></td>';
echo '<td style="width:500px;text-align:center;">'.$bilgiler15['urunad'].'</td>';
if ($bilgiler17['urunadet'] == 0) {
echo '<td style="width:125px;text-align:center;"><input type="button" value="-" onclick="azalt('.$bilgiler15['no'].');">'.$bilgiler15['urunadet'].'</td>';
}else {
echo '<td style="width:125px;text-align:center;"><input type="button" value="-" onclick="azalt('.$bilgiler15['no'].');">'.$bilgiler15['urunadet'].'<input type="button" value="+" onclick="artir('.$bilgiler15['no'].');"></td>';
}
echo '<td style="width:75px;text-align:center;">'.$bilgiler17['urunfiyat'].'<label><b> € </b></label></td>';
echo '<td><input type="button" value="Delete" onclick="sil('.$bilgiler15['no'].')"></td>';
echo '</tr>';
@$fiyat += $bilgiler17['urunfiyat'] * $bilgiler15['urunadet'];
@$toplamadet += $bilgiler15['urunadet'];
if ($toplamadet == 1) {
$kargo = 5;
}elseif ($toplamadet > 1) {
$kargo = 5 + ($toplamadet - 1);
}else{
}
$toplam = $fiyat + $kargo;
}
}
我试过但我不能。
我该怎么做?
请分享代码模型。
我需要你的帮助。
注意:我的代码很复杂。对不起。我锄你理解。
答案 0 :(得分:1)
很抱歉我不知道代码在做什么,但你基本上没有将数组设置到SESSIOn中,你每次循环时都会覆盖数据
$_SESSION['b'] = $bilgiler15['urunad'];
$_SESSION['urunadi'] = $bilgiler15['urunad'];
$_SESSION['urunadet'] = $bilgiler15['urunadet'];
$_SESSION['urunfiyat'] = $bilgiler17['urunfiyat'];
修改它,以便每次围绕while循环向会话添加新项目
$_SESSION['b'][] = $bilgiler15['urunad'];
$_SESSION['urunadi'][] = $bilgiler15['urunad'];
$_SESSION['urunadet'][] = $bilgiler15['urunadet'];
$_SESSION['urunfiyat'][] = $bilgiler17['urunfiyat'];
现在你将有很多$_SESSION['b']
出现等
它可能更容易做到这一点所以每一行都被添加为数组中的新出现
$_SESSION['bilgiler15'][] = array(
'b' => $bilgiler15['urunad'],
'urunadi' => $bilgiler15['urunad'],
'urunadet' => $bilgiler15['urunadet'],
'urunfiyat' => $bilgiler17['urunfiyat'],
);
或者
$_SESSION['bilgiler15'][$bilgiler15['urunad']] =
array(
'urunadi' => $bilgiler15['urunad'],
'urunadet' => $bilgiler15['urunadet'],
'urunfiyat' => $bilgiler17['urunfiyat'],
);