ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่
ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่ form ซึ่ง form ในค่าแรกจะไม่ขึ้นค่าid แต่สามารถกดเพิ่มแล้วเก็บข้อมูลได้
ประมาณนี้ครับคือค่าแรกจะไม่มี form
Code (PHP)
<?php
if(isset($_POST["add_cart"])){
if(isset($_SESSION["shopping_cart"])) // เช็คว่ามีการสร้าง $_SESSION ขึ้นหรือยัง เป็นการเช็คว่า สินค้าที่เพิ่มเข้ามามีอยู่หรือยัง ถ้ายังจะนำไอดีมา
{
$item_array_id = array_column($_SESSION["shopping_cart"], "item_id"); // item_arra_id เก็บค่า array column เก็บ item_id
if(!in_array($_GET["item_id"], $item_array_id)) // in_array เช็คว่ามีค่าอยู่ข้างในหรือยัง จะมีการนำไอดีมาเปรียบเทียบ
{
$count = count($_SESSION["shopping_cart"]);
$_SESSION['numitem'] = $_SESSION['numitem'] + 1;
$item_array = array(
'item_id' => $_GET["item_id"],
'item_name' => $_POST["hidden_name"],
'item_price' => $_POST["hidden_price"],
'item_quantity' => $_POST["quantity"],
'item_nameshop' => $_POST["hidden_nameshop"],
);
$_SESSION["shopping_cart"][$count] = $item_array;
}
else
{
echo '<script>alert("สินค้าถูกเพิ่มแล้ว")</script>';
echo '<script>window.location="Homepage.php"</script>';
}
}
else // จะเป็นการสร้าง array ขึ้นมาแล้วเก็บไว้ใน $item_array ไปใส่ไว้ใน $_SESSION['shopping_cart']
{
$_SESSION['numitem'] = $_SESSION['numitem'] + 1;
$item_array = array(
'item_id' => $_GET["item_id"],
'item_name' => $_POST["hidden_name"],
'item_price' => $_POST["hidden_price"],
'item_quantity' => $_POST["quantity"],
'item_nameshop' => $_POST["hidden_nameshop"],
);
$_SESSION["shopping_cart"][0] = $item_array;
}
}
?>
</div>
<?php } ?>
<div class="row">
<?php
$num = 0;
while($result = mysqli_fetch_assoc($query)){
$num++;
?>
<div class="col-3 mt-5">
<form method="post" action="Search.php?action=add&item_id=<?php echo $result['item_id'];?>">
<div class="card" style="width: 18rem; height: 43rem;"> <!-- rem คือขนาดความกว้าง-->
<img src="Picture/<?php echo $result['photoname']; ?>" width="400" height="350" class="card-img-top" >
<div class="card-body">
<h5 class="card-title"> <?php echo $result['nameitem'] ?> </h5>
<p class="card-text"> ราคา : <?php echo number_format($result['price'],2); ?></p> <!-- number format เป็นการแปลงตัวเลขให้มี คอมม่า ,2 คือ การมีทศนิยมสองตัว-->
<p class="card-text"> รายละเอียดสินค้า : <?php echo iconv_substr($result['descriptionitem'], 0, 83, "UTF-8");?></p> <!-- เป็นการกำหนด ว่าเริมต้นที่ 0 และ จบตัวที่ 83 เป็นการกำหนดคำให้แสดงแค่ไหน และแสดงเป็นภาษาไทย -->
<input type="text" name="quantity" class="form-control" value="1" >
<input type="hidden" name="hidden_name" value="<?php echo $result['nameitem'] ?>" > <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
<input type="hidden" name="hidden_price" value="<?php echo $result['price'] ?>" > <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
<input type="hidden" name="hidden_nameshop" value="<?php echo $result['nameshop'] ?>" > <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
<a href="itemdetail.php?item_id=<?php echo $result['item_id'] ?>" class="btn btn-primary mt-4">ดูเพิ่มเติม</a>
<?php if (isset($_SESSION['member_id'])) { ?>
<input type="submit" name="add_cart" class="btn btn-success mt-4" value="เพิ่มลงตะกร้าสินค้า"/>
<?php } ?>
</div>
</div>
</form>
</div>
<div class="col-1">
</div>
<?php } ?>
Tag : PHP
ประวัติการแก้ไข 2019-11-05 04:24:19
Date :
2019-11-05 04:21:41
By :
byte00789
View :
743
Reply :
17
มองไม่เห็นภาพน่ะ
Date :
2019-11-05 08:47:48
By :
Genesis™
ใช้ session ประกาศ session_start() หรือยัง
ต้องการให้แสดงค่าแรก ก็ต้องรู้ให้ได้ว่าค่าแรก เก็บไว้ในตัวแปรอะไร เพื่อที่จะได้นำไปแสดงได้ถูก
if else จัดลำดับการเรียกใช้ให้ถูกต้อง
เมื่อไม่พบตัวแปร post จะเอาค่าอะไรมาเป็นค่าเริ่มต้น
Date :
2019-11-05 09:42:06
By :
NewbiePHP
บันทัดที่ 81 เกินมาหรือเปล่าครับ
น่าจะเอาอันนี้ออก
<div class="col-1">
</div>
Date :
2019-11-05 13:52:43
By :
birdbird27
ขอดูโค๊ดตั้งแต่ container หน่อยครับ
Date :
2019-11-05 15:09:50
By :
sleeplesscat
Code (PHP)
while($result = mysqli_fetch_assoc($query)){
echo '<pre>';
print_r $result;
ดูว่า id มีค่ารึป่าว
Date :
2019-11-05 17:02:13
By :
sleeplesscat
แนะนำนะ : ถ้าเป็นการ Search ควรใช้ form method="GET" ป้อนค่า ไปที่ URI โดยตรงเลย
ส่วนตรง SELECT ดึงค่า GET ได้เลย เช่น
Code (PHP)
$sql = "SELECT * FROM products WHERE name LIKE '%".$_GET['txt']."%' ";
$query = mysqli_query($conn,$sql);
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
echo $result["name"].' '.$request['quantity'];
}
หลักการมันมีแค่นี้
ประวัติการแก้ไข 2019-11-05 18:02:29
Date :
2019-11-05 18:00:22
By :
Genesis™
เลิกใช้คำสั่งคิวรี่ กับตัวแปรชนิด global ครับ
ให้ใช้คำสั่ง prepare bind_param excute แทนครับ
เป็นชุดคำสั่งป้องกัน sql injection
Date :
2019-11-05 21:08:46
By :
NewbiePHP
Load balance : Server 02