|
|
|
ช่วยดูโค้ดให้หน่อยนะค่ะ รหัสการสั่งซื้อมันนลงตามรหัสจริง ช่วยหน่อยนะค่ะ |
|
|
|
|
|
|
|
นี่คือ ตาราง order_detail ตอนนี้ order_id มันเปน 000 อย่างเดียวเลย มันไม่รันตามรหัสการสั่งซื้อเลย ช่วยดูโค้ดให้หน่อยนะค่ะ
ส่วนนี้โค้ด
Code (PHP)
<?
session_start();
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
include "connect.php";
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$address = $_POST["address"];
$total = $_POST["total_order"];
$date_now = date("Y-m-d");
$sql1= "insert into orders ( order_id , order_name , order_address , order_email , order_phone , order_total , order_date ) values (null, '$name', '$address', '$email', '$phone', '$total', '$date_now')";
mysql_query($sql1);
$sql2 = "select max(order_id) from orders";
$ex2 = mysql_db_query($dbname , $sql2);
$row =($ex2);
for($i=0; $i<count($sess_id); $i++) {
$sql3 = "insert into orders_detail(order_id, product_id, order_price) values ('$row[0]' , '$sess_id[$i]', '$sess_price[$i]')" ;
mysql_query($sql3);
}
session_unregister("sess_id");
session_unregister("sess_name");
session_unregister("sess_price");
session_unregister("sess_num");
echo "<h3 align=center> ทำการบันทึกใบสั่งซื้อเรียบร้อยแล้ว </h3>";
echo "<h3 align=center><a href=user_page.php?id>กลับหน้าหลัก </a></h3>";
mysql_close();
?>
Tag : PHP
|
|
|
|
|
|
Date :
2014-06-19 03:48:36 |
By :
zerza18 |
View :
779 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code
$sql1= "insert into orders ( order_id , order_name , order_address , order_email , order_phone , order_total , order_date ) values (null, '$name', '$address', '$email', '$phone', '$total', '$date_now')";
ลองดูที่ตาราง orders ครับว่ามีไอดีไหม เพราะเห็นเซ็ตเป็น null ไว้
ถ้ามีข้อมูล ตาราง orders_detail จะได้ไอดีมาด้วย
Code
$sql3 = "insert into orders_detail(order_id, product_id, order_price) values ('$row[0]' , '$sess_id[$i]', '$sess_price[$i]')" ;
|
|
|
|
|
Date :
2014-06-19 07:27:53 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$sql1= "insert into orders ( order_id , order_name , order_address , order_email , order_phone , order_total , order_date ) values (null, '$name', '$address', '$email', '$phone', '$total', '$date_now')";
mysql_query($sql1);
$sql2 = "select max(order_id) from orders";
$ex2 = mysql_db_query($dbname , $sql2);
//$row =($ex2); // บันทัดนี้ผมไม่เคยเห็นการเรียกใช้แบบนี้ครับ
// เพราะมันส่งแค่ค่า address มาเก็บไว้ที่ $row ครับ ไม่ได้ส่ง record มาเก็บใน $row
// ควรจะแก้เป็น
$row=mysql_fetch_row($ex2); ครับ
for($i=0; $i<count($sess_id); $i++) {
$sql3 = "insert into orders_detail(order_id, product_id, order_price) values ('$row[0]' , '$sess_id[$i]', '$sess_price[$i]')" ;
mysql_query($sql3); // บันทัดนี้ $row[0] ก้จะมีค่าครับ จากการแก้ โค๊ด ข้างบน
---------------------------------------------------------------------------
ที่นี้ผมมีวิธี เขียนที่สั้นลงครับ ดังนี้
Code (PHP)
$sql1= 'insert into orders '.
'( order_name , order_address , order_email , order_phone , order_total , order_date )'.
" values ( '$name', '$address', '$email', '$phone', '$total', '$date_now')";
// สังเกตครับผมตัด order_id ออก เพราะ ผมคิดว่า field order_id ถูก กำหนดให้เป็น autoincrement
// เมื่อเป็น autoincrement ก็ไม่จำเป็นต้องใส่ค่าครับ
mysql_query($sql1);
$order_id=mysql_insert_id(); // เมื่อ run ใส่บันทัดนี้ต่อเลย
//จะทำให้ ค่าของ $order_id เท่ากับ id ใหม่ที่ถูก กำหนดโดย autoincrement
for($i=0; $i<count($sess_id); $i++) {
$sql3 = 'insert into orders_detail(order_id, product_id, order_price)'.
" values ('$order_id' , '$sess_id[$i]', '$sess_price[$i]')" ;
mysql_query($sql3);
คิดว่าคงเป็นประโยชน์บ้างนะครับ
|
ประวัติการแก้ไข 2014-06-19 08:39:04
|
|
|
|
Date :
2014-06-19 08:37:12 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากค่ะพี่ เจ๋งจิงๆค่ะ
|
|
|
|
|
Date :
2014-06-19 14:34:22 |
By :
zerza18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|