|
|
|
php: รบกวนสอบถาม และขอคำแนะนำ code เรื่อ session ทำไมไม่วน loop ให้ มันแสดงค่าเดียว (ค่าล่าสุด) แต่ไม่แสดงผลค่าทั้งหมด |
|
|
|
|
|
|
|
ทำ shopping cart โดยปรับปรุงจาก code เดิมที่เคยทำโดย
เปลี่ยน mysql เป็น mysqli
Code (SQL)
--
-- Table structure for table `tb_product`
--
CREATE TABLE IF NOT EXISTS `tb_product` (
`id_prd` int(5) NOT NULL,
`name_prd` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`detail_prd1` mediumtext COLLATE utf8_unicode_ci NOT NULL,
`price_prd1` int(7) NOT NULL,
) ENGINE=MyISAM AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
หน้า productView.php
Code (PHP)
<?php
session_start();
if(isset($_GET["id_edit"]))
{
echo $id_edit=$_GET["id_edit"];
}
require("storeScripts/dbConnect.php");
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
$conn->set_charset('utf8');
$sql3 = "SELECT * FROM tb_product WHERE id_prd='$id_edit'";
$query3=mysqli_query($conn,$sql3);
$result3=mysqli_fetch_array($query3,MYSQLI_ASSOC);
$id_prd= $result3["id_prd"];
$name_prd= $result3["name_prd"];
$detail_prd1= $result3["detail_prd1"];
$price_prd1= $result3["price_prd1"];
echo "<p>".$name_prd."</p>";
echo "<p>".$detail_prd1."</p";
echo "<p>".$price_prd1."</p>";
?>
<a href="basket_add.php?id_edit=<?php echo $id_prd; ?>" class="pr1"> <img src="imgs/icon/cart2.gif" width="30" height="30" /><br />Add to Cart </a>
basket_add.php
Code (PHP)
<?php
session_start();
if (isset($_GET["id_edit"]))
{
$id_edit=$_GET["id_edit"];
echo $id_edit;
}
$_SESSION["sess_userid"]=session_id();
$_SESSION["sess_id"]=array();
$sess_id=$_SESSION["sess_id"];
$sess_name=array();
$sess_price1=array();
$sess_num=array();
if(count($sess_id)=="0")
{
$check=1;
}else if(!in_array($id_edit, $sess_id))
{
$check=1;
}
if ($check==1)
{
$serverName = "localhost";
$userName = "root";
$userPassword = "";
$dbName = "bus_21";
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
$conn->set_charset('utf8');
$sql="select * from tb_product where id_prd=$id_edit";
$query=mysqli_query($conn,$sql);
$rs=mysqli_fetch_array($query, MYSQLI_ASSOC);
$sess_id[]=$rs["id_prd"];
$sess_name[]=$rs["name_prd"];
$sess_price1[]=$rs["price_prd1"];
$sess_num[]=1;
$_SESSION["sess_id"]=$sess_id;
$_SESSION["sess_name"]=$sess_name;
$_SESSION["sess_price1"]=$sess_price1;
$_SESSION["sess_num"]=$sess_num;
}
echo"<script>document.location.href='basket.php'</script>";
?>
หน้า basket.php
Code (PHP)
<?php
session_start();
if(!isset($_SESSION['sess_id']))
{ echo "No item";
}else
{
?>
<FORM METHOD="POST" ACTION="basket_cal.php">
<table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr align="center" bgcolor="#eaeaea"><td width="5%">Del</td><td width="60%">Product</td><td width="10%">Number</td><td width="15%">Price (Unit/BTH)</td><td width="10%">Total (BTH)</td></tr>
<?php
echo "Do Somthing";
$sess_id=$_SESSION["sess_id"];
$sess_name=$_SESSION["sess_name"];
$sess_price1=$_SESSION["sess_price1"];
$sess_num=$_SESSION["sess_num"];
$total = "";
for($i=0; $i<count($sess_id); $i++)
{
$total_unit=$sess_num[$i]*$sess_price1[$i];
$total=$total+$total_unit;
echo $sess_id[$i]." - ".$sess_num[$i]." - ".$sess_price1[$i]." - ";
?>
<tr>
<td align="center"><INPUT TYPE="checkbox" NAME="prd_del[]" VALUE="<?php echo $sess_id[$i]; ?>"></td>
<td><?php echo $sess_name[$i]; ?></td>
<td><INPUT TYPE="text" NAME="prd_num[]" VALUE="<?php echo $sess_price1[$i]; ?>" SIZE="4"></td>
<td align="right"><?php echo $sess_num[$i]; ?></td>
<td align="right">
<?php
echo $total_unit; ?>
</td>
</tr>
<tr><td colspan="5" align="right">
<hr>
<?php
echo "<br>Total ".$total." BTH ";
}
?>
<br><br>
<INPUT TYPE="submit" NAME="calculate" VALUE="Re-Calculate">
<INPUT TYPE="submit" NAME="complete" VALUE="Submit Order">
</td></tr> </table>
</FORM>
<?php
}
?>
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2015-11-20 14:57:31
|
|
|
|
|
Date :
2015-11-20 14:36:19 |
By :
gju |
View :
812 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไม? ไม่วน loop ให้ มันแสดงค่าเดียว (ค่าล่าสุด) => อยากได้ค่าล่าสุดค่าเดียวใช่หรือไม่?
แต่ไม่แสดงผลค่าทั้งหมด => หรือว่าอยากให้แสดงทั้งหมด?
แล้วอยากให้หน้าไหนที่จะให้แสดงแบบที่ต้องการ?
|
|
|
|
|
Date :
2015-11-20 14:43:18 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคะ
ต้องการให้แสดงสินค้าที่เลือก ทั้งหมด ที่เก็บค่าใน session คะ
คือ เลือกสินค้า 1 ชิ้น program ก็แสดง 1 ชิ้น
ทีนี้ พอเลือกชิ้นที่ 2 แทนที่จะแสดงสินค้าชิ้นที่ 1 และชิ้นที่ 2
กลับแสดงสินค้าเฉพาะชิ้นที่ 2
หน้าที่ควรแสดงสินค้าทั้งหมดคือ basket.php คะ
รบกวนแนะนำด้วยคะ
|
ประวัติการแก้ไข 2015-11-20 15:01:13
|
|
|
|
Date :
2015-11-20 14:59:54 |
By :
gju |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันผิดที่ basket_add.php นะครับ
44. $_SESSION["sess_id"]=$sess_id;
45. $_SESSION["sess_name"]=$sess_name;
46. $_SESSION["sess_price1"]=$sess_price1;
47. $_SESSION["sess_num"]=$sess_num;
ข้างบนรับค่าเดียว แต่ด้านล่างนี้มีการ for ลูปแบบอาร์เรย์
16. $sess_id=$_SESSION["sess_id"];
.
.
.
23. for($i=0; $i<count($sess_id); $i++)
ดังนั้นค่าที่ได้ก็เลยมีค่าเดียว
ดูหลักการของตะกร้าสินค้าได้ที่นี่
https://www.thaicreate.com/community/php-mysql-mysqli-shopping-cart.html
|
|
|
|
|
Date :
2015-11-20 16:32:53 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|