รบกวนอีกครั้งคะ ตอนนี้มีปัญหาอยู่ 2 อย่างคือเรื่อง Join ตารางกับตะกร้าสินค้าค่ะ
เรื่องที่ 2 ก็คือเรื่องตะกร้าสินค้าค่ะ คือพอเรากดปุ่มสั่งซื้อสินค้าแล้วพอมันไปหน้า Show.php มันกับไม่แสดงสินค้าที่เรากดสั่งซื้ออะค่ะ เราเอาโค้ดมาจากในนี้มาบวกกับที่สอนใน YT อะค่ะ
ปุ่มสั่งซื้อสินค้า
<div id="submit"><button type="button"><a href="order.php?id_product=<?php echo $objResult["id_product"];?>">สั่งซื้อสินค้า</a></button></div>
order.php
<?php
ob_start();
session_start();
if(!isset($_SESSION["intLine"]))
{
$_SESSION["intLine"] = 0;
$_SESSION["strProductID"][0] = $_GET["id_product"];//อันนี้เก็ทค่ามากจาก id ของสินค้านั้นๆใช่มั้ยคะ
$_SESSION["strQty"][0] = 1;
header("location:show.php");
}
else
{
$key = array_search($_GET["id_product"], $_SESSION["strProductID"]);
if((string)$key != "")
{
$_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1;
}
else
{
$_SESSION["intLine"] = $_SESSION["intLine"] + 1;
$intNewLine = $_SESSION["intLine"];
$_SESSION["strProductID"][$intNewLine] = $_GET["id_product"];
$_SESSION["strQty"][$intNewLine] = 1;
}
header("location:show.php");
}
?>
หน้า Show.php
<?php
session_start();
?>
<html>
<head>
<title>ตระกร้าสินค้า</title>
</head>
<?php
$con = mysqli_connect("localhost","root","");
?>
<table width="400" border="1">
<tr>
<td width="101">รหัสสินค้า</td>
<td width="82">ชื่อสินค้า</td>
<td width="82">ราคา</td>
<td width="79">จำนวน</td>
<td width="79">รวม</td>
<td width="10">ลบ</td>
</tr>
<?php
$Total = 0;
$SumTotal = 0;
$_SESSION["intLine"] = isset($_SESSION["intLine"]) ? $_SESSION["intLine"] : '';
if ($_SESSION["intLine"] !=''){
for($i=0;$i<=(int)$_SESSION["intLine"];$i++)
{
if(isset($_SESSION["strProductID"][$i]) && $_SESSION["strProductID"][$i] != "")
{
$strSQL = "SELECT * FROM product WHERE id_product = '".$_SESSION["strProductID"][$i]."' ";
//$objQuery = mysql_query($strSQL) or die(mysql_error());
$objQuery = mysqli_query($con,$strSQL) or die(mysqli_error($con));
$objResult = mysqli_fetch_array($objQuery);
$Total = $_SESSION["strQty"][$i] * $objResult["price"];
$SumTotal = $SumTotal + $Total;
?>
<tr>
<td><?php echo $_SESSION["strProductID"][$i];?></td>
<td><?php echo $objResult["product"];?></td>
<td><?php echo $objResult["price"];?></td>
<td><?php echo $_SESSION["strQty"][$i];?></td>
<td><?php echo number_format($Total,2);?></td>
<td><a href="delete.php?Line=<?php echo $i;?>">ลบ</a></td>
</tr>
<?php
}
}
}
?>
</table>
ราคารวม <?php echo number_format($SumTotal,2);?>
<br><br><a href="product.php">ไปที่หน้าแสดงสินค้า</a>
<?php
if($SumTotal > 0)
{
?>
| <a href="checkout.php">CheckOut</a>
<?php
}
?>
<?php mysqli_close($con); ?>
</body>
</html>
Date :
2016-02-15 01:34:12
By :
mineymin
อ่านคำถามแรกงงนิดหน่อย หมายถึงเอาราคาล่าสุดมาแสดงหรือเปล่าครับ ถ้าใช่ ก็ตามตัวอย่าง
Code (SQL)
SELECT p.*,c.*
FROM product p
inner join price_compared c on p.id_product = c.id_product
inner join (select max(date) max_date, id_product from price_compared group by id_product) as m
on c.date=m.max_date and c.id_product = m.id_product
WHERE p.id_product = $id_product
ปล. ต้องเช็คตัวแปร ชื่อฟีลด์เอาหน่อยนะครับผมไม่เห็น structure ของแต่ละตาราง
ส่วน การใช้ session เก็บตะกร้าสินค้า ผมไม่แน่ะนำให้ใช้ เพราะมันจะต้องวนลูปคิวรี่ ตามจำนวนสินค้าแต่ละชนิด
ต้อง connect กับ db server ตามจำนวนลูป เปลือง resource
แนะนำให้เก็บลง database สร้างตารางมาเก็บ สามารถจอยกันได้ง่าย connection เดียว ด้วยคำสั่งเดียว
แถม เก็บไว้ พรุ่งนี้มาซื้อต่อได้อีก กรณี่ผู้ซื้อยังไม่ตัดสินใจซื้อ (แบบเลือกเอาให้คุ้มกับค่าส่ง)
แบบเลือกมากๆ แล้วง่วงนอน พรุ่งนี้มาสั่งต่อ
ถ้าใช้ session คุณต้อง config session ให้ดี ต้องคำนึงระยะเวลา เพราะ ถ้าหลุด session หาย ต้องมานับหนึ่งใหม่
Date :
2016-02-15 06:25:49
By :
Chaidhanan
เรื่องการคิวรี่อะค่ะ คือเราต้องการที่จะเรียกข้อมูลราคาสินค้าจากอีกตารางซึ่งเป็นราคาเปรียบเทียบกับร้านอื่นอะค่ะ โดยเรามี Id_product เป็นตัวเชื่อมระหว่าง 2 ตารางคือตาราง product และ Price_comp. แบบในรูปอะค่ะ
ตารางราคาสินค้า โดย Price 1 กับ Price 2 เป็นราคาเปรียบเทียบของตัวสินค้าซึ่งมาจากร้านค้าอื่นๆ ตัวสินค้าจะมีราคาของมันที่ร้านค้าหลักอยู่แล้วอะค่ะ
นี่ตาราง product คะ price คือราคาที่ร้านหลักกำหนดไว้ค่ะ
ส่วนที่เราติดปัญหาอะค่ะในหน้าแสดงผลหากเราคลิกสินค้านั้นมันก็จะต้องแสดงราคาของตัวมันเองอะค่ะ คือถ้าสินค้าเปลี่ยนราคาสินค้ามันต้องเปลี่ยนอะค่ะ หมายถึงในช่องสีฟ้า 2 อัน คือตอนนี้ที่ติดก็คือ จะทำยังไงให้มันเปลี่ยนไปตาม id ของสินค้าอะค่ะ ให้เหมือนรายละเอียดสินค้าอะค่ะ ที่เปลี่ยนไปตามตัวสินค้านั้น โดยที่ไม่ต้องใส่ค่าเลข 1 2 3 (รหัสสินค้า) อะค่ะ
พอมันเปลี่ยนสินค้าราคายังไม่เปลี่ยนอะค่ะ
ส่วนเรื่องตะกร้าสินค้าตอนนี้ทำได้แล้วนะคะง่ายกว่าเก็บ Session เยอะเลย ตอนนี้เราทำโปรเจคอยู่ ขอบคุณสำหรับคำแนะนำมากๆค่ะ ไม่งั้นตายแน่
Date :
2016-02-15 22:13:22
By :
mineymin
Load balance : Server 04