ดูข้อมูลการสั่งซื้อของลูกค้า |
เราจะกลับไปที่ไฟล์ admin_showorder.php เพื่อแก้ไขและเพิ่มเติมCode PHP บางส่วนเข้าไปคับ
ให้เปิดไฟล์ admin_showorder.php ขึ้นมา แล้วแก้ไขCodeตามนี้เลยคับ
คำสั่งที่เราได้แก้ไขคือ คำสั่ง
โดยเราจะทำLink ไปยังไฟล์ admin_showvieworder.php โดยส่ง request parameter เข้าไปสองตัวคือ รหัสการสั่งซื้อ (orderid) และ ชื่อusername ของลูกค้า (u)
จากนั้นเปิดโปรแกรม Dreamweaver ขึ้นมาแล้วสร้างไฟล์ .php ขึ้นมาอีกหนึ่งไฟล์ ตั้งชื่อว่า admin_showvieworder.php จากนั้นให้พิมพ์ Code ดังนี้
<?php require_once("config.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <link rel="stylesheet" type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css"> <link rel="stylesheet" type="text/css" href="style.css"/> <title>ข้อมูลการสั่งซื้อของลูกค้า</title> <?php if(isset($_POST['od_id'])&&isset($_POST['od_status'])){//บันทึกสถานะการชำระเงิน $odid=$_POST['od_id'];//รหัสใบสั่งซื้อ ข้อมูลถูกจัดเก็บแบบอาเรย์ $odst=$_POST['od_status'];//สถานะการสั่งซื้อ ข้อมูลจะอยู่ในรูปอาเรย์เช่นกัน for($olo=0;$olo<count($odid);$olo++){ //อัพเดทสถานะการชำระเงิน mysql_query("UPDATE tb_order SET od_status='".$odst[$olo]."' WHERE od_id=".$odid[$olo]); } echo "<script>alert('อัพเดทสถานะการชำระเงินเรียบร้อยแล้ว');</script>"; } $showorder=false;#ไม่ให้แสดง table รายการสั่งซื้อ (ขณะที่รันโปรแกรมตอนแรก) if(isset($_GET['day'])&&isset($_GET['mount'])&&isset($_GET['year'])){ $day=$_GET['day']; $mount=$_GET['mount']; $year=$_GET['year']; $mbname=$_GET['mbname']; $sql="SELECT * FROM tb_order,tb_member WHERE tb_member.mb_user<>'' and tb_member.mb_user=tb_order.mb_user "; if($day!='0'&&$mount!='0'&&$year!='0'){#เลือก วัน เดือน ปี $rssearch="- $day/$mount/$year -"; $date_select="%$year-$mount-$day"; $sql.=" AND tb_order.od_date LIKE '$date_select'"; } if($day=='0'&&$mount!='0'&&$year!='0'){#เลือก เดือน ปี $rssearch="- 00/$mount/$year -"; $date_select="$year-$mount%"; $sql.=" AND tb_order.od_date LIKE '$date_select'"; } if($day=='0'&&$mount!='0'&&$year=='0'){#เลือก เดือน $rssearch="- 00/$mount/0000 -"; $date_select="%-$mount-%"; $sql.=" AND tb_order.od_date LIKE '$date_select'"; } if($day=='0'&&$mount=='0'&&$year!='0'){#เลือก ปี $rssearch="- 00/00/$year -"; $date_select="$year%"; $sql.=" AND tb_order.od_date LIKE '$date_select'"; } if($mbname!='') $rssearch="$rssearch + $mbname +"; $sql.=" AND (tb_member.mb_name LIKE '%$mbname%' OR tb_member.mb_user LIKE '%$mbname%') "; $showorder=true;#แสดงtable รายการสั่งซื่อได้ $rs_showorder=$conn->Execute($sql.' ORDER BY tb_order.od_date DESC');#คิวรี่ข้อมูล จะมีคำสั่งเหมือน mysql_query $order_status=array('ยังไม่ชำระเงิน'=>1,'ชำระเงินแล้ว-รอจัดส่ง'=>2,'จัดส่งสินค้าเรียบร้อยแล้ว'=>3);#สถานะการชำระเงิน } /*##############END ###############*/ if(isset($_POST['od_id'])){//ตรวจสอบการกดปุ่มsave (submit form)โดยเราจะตรวจสอบจาก ค่าพารามิเตอร์ที่ส่งเข้ามาแบบPOSTคือ od_id นั่นเอง $odid_save=$_POST['od_id'];//สร้างตัวแปร$odid_saveมารับค่าพารามิเตอร์ที่ส่งเข้ามา od_id[] $odstatus_save=$_POST['od_status'];//สร้างตัวแปร$odstatus_saveมารับค่าพารามิเตอร์ที่ส่งเข้ามา od_status[] } ?> </head> <body> <div id="container"> <div id="header"> <div id="headerText">Crochet Tukta Online(หลังร้าน)<img src="images/logo.png" width="35" height="57" /></div> </div> <div id="content"> <div id="m_left"> <? require_once("leftmenu.php");?> </div> <div id="m_center"><strong>ดูรายการสั่งซื้อของลูกค้า</strong><br /> <div id="dialogMsg" title="เกิดข้อผิดพลาด"> <div id="showMsg"></div> </div> <form action="<?= htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES) ?>" method="get" enctype="multipart/form-data" name="FaddPg" id="FaddPg" onsubmit="return chkVal()"> <strong>วันที่</strong> <select name="day" id="day"> <option value="0">ไม่เลือก</option> <?php for($dayi=1;$dayi<=31;$dayi++){ ?> <option value="<?=$dayi?>" > <?=$dayi?> </option> <? } ?> </select> <strong>เดือน</strong> <select name="mount" id="mount"> <option value="0">ไม่เลือก</option> <?php $mount=array('ม.ค.'=>'01', 'ก.พ.'=>'02', 'มี.ค.'=>'03','เม.ย.'=>'04','พ.ค.'=>'05','มิ.ย.'=>'06','ก.ค.'=>'07','ส.ค.'=>'08','ก.ย.'=>09,'ต.ค.'=>'10','พ.ย.'=>'11','ธ.ค.'=>'12'); foreach($mount as $keymount => $valmount){#$keymount คือ ชื่อเดือน(ม.ค.) ส่วน $valmount คือ ลำดับเดือน(1) ?> <option value="<?=$valmount?>"> <?=$keymount?> </option> <? } ?> </select> <strong>ปี</strong> <select name="year" id="year"> <option value="0">ไม่เลือก</option> <?php for($yeari=2005;$yeari<=date('Y');$yeari++){#เริ่มจากปี 2005 ถึงปีปัจจุบัน(date('Y')) ?> <option value="<?=$yeari?>"> <?=$yeari+543#แปลงให้เป็นปี พ.ศ.?> </option> <? } ?> </select> หรือ <strong>ชื่อ/Username</strong> <input type="text" name="mbname" id="mbname" /> <input type="submit" name="bt_search" id="bt_search" value="ค้นหา" /> </form> <?php if($showorder){ ?> <form id="pay_status" name="pay_status" method="post" action="admin_showorder.php?<?=$_SERVER['QUERY_STRING']?>"> <table width="100%" border="1" cellpadding="3" cellspacing="0"> <tr bgcolor="#996633"> <td colspan="4" bgcolor="#FF9966">ผลการค้นหา : <strong> <?=$rssearch?> </strong></td> </tr> <tr bgcolor="#996633"> <td><strong>วันที่</strong></td> <td><strong>ชื่อ-สกุล</strong></td> <td><strong>User name</strong></td> <td><strong>สถานะ <a href="#" onclick="document.getElementById('pay_status').submit()"><img src="images/save.gif" width="16" height="16" border="0" /> </a></strong></td> </tr> <?php if($rs_showorder->RecordCount()>0){ while(!$rs_showorder->EOF){ $odid=$rs_showorder->fields['od_id']; $u=$rs_showorder->fields['mb_user']; ?> <tr bgcolor="#FFFFFF"> <td><?="<a href=\"admin_showvieworder.php?orderid=$odid&u=$u\" target=\"_blank\">".$rs_showorder->fields['od_date']."</a>"?></td> <td><?=$rs_showorder->fields['mb_name']?></td> <td><?=$rs_showorder->fields['mb_user']?></td> <td><input type="hidden" name="od_id[]" id="od_id[]" value="<?=$odid?>" /><select name="od_status[]" id="select2"> <?php foreach($order_status as $oskey => $osval){#แสดงสถานะการชำระเงิน?> <option value="<?=$osval?>" <?=$osval==$rs_showorder->fields['od_status']?'selected="selected"':""?>> <?=$oskey?> </option> <? } ?> </select></td> </tr> <? $rs_showorder->MoveNext();} }else{ ?> <tr bgcolor="#FFFFFF"> <td colspan="4" align="center"><label for="select2"><strong>ไม่พบข้อมูลที่ค้นหา</strong></label></td> </tr> <? } ?> </table> </form> <? } ?> </div> </div> <div class="clear"></div> <div id="footer"> <h1>copyright©2010 http://pnwtt1987.blogspot.com</h1> </div> </div> </body> </html> <?php $conn->Close();?>
แล้วพบกับบทความสอนทำ E-Commerce ด้วย PHP+MySQL ในโอกาสหน้าคับ
อยากได้ไฟล์ต้องแต่ต้นเลยอะครับ รบกวนหน่อยนะครับ
ตอบลบจัดให้เลยคับ ไฟล์ที่ใช้สอนตั้งแต่บทความแรกจนถึงบทความนี้พร้อมกับฐานข้อมูลคับ
ตอบลบดาวน์โหลด >>http://www.4shared.com/file/ASJptEkC/exshops.html
ขอบคุณนะคะ
ตอบลบเพิ่มเติมให้นะครับ
ตอบลบ$sql="SELECT * FROM tb_order,tb_member WHERE tb_member.mb_user<>'' and tb_member.mb_user=tb_order.mb_user ";
ไม่งั้น order ออกมาซ้ำกันนะครับ
เพิ่มเติมตรง ไฟล์ไหนค่ะ
ลบขอบคุณมากครับ ได้ประโยชน์มากเลยสำหรับคนที่เพิ่งเริ่ม ลองไล่โปรแกรมดูสนุกดีครับ :)
ตอบลบขอบคุณมากๆๆคะ กำลังศึกษาเรื่องอีคอมพอดีเลยย
ตอบลบถ้าต้องการให้ table รายการสั่งซื้อ แสดงผลเลย
ตอบลบแก้ไขโค้ดยังไงค่ะ
แล้ว ตัวเลขวันที่อ่ะค่ะ วันที่ 1-9 search หาไม่เจอนะคะ เพราะ มันต้องเป็นเลขสองหลักถึงจะ search ได้ ค่ะ
@pang
ตอบลบถ้าให้แสดงผลเลยคงยากหน่อยครับ เพราะต้องแก้ไขโค๊ดเยอะนิดหน่อยครับ
ส่วนเลข 1-9 วิธีแก้ก็คือ ไฟล์ admin_showorder.php สังเกตุคำสั่ง
<?php for($dayi=1;$dayi<=31;$dayi++){ ?>
<option value="<?=$dayi?>" >
<?=$dayi?>
</option>
<? } ?>
เปลี่ยนเป็น
<?php for($dayi=1;$dayi<=31;$dayi++){ ?>
<option value="<?=$dayi<10?'0'.$dayi:$dayi?>" >
<?=$dayi?>
ใช่ค่ะ พยายามแก้อยู่นาน ยังไงก็ไม่ได้ ไม่เป็นไรค่ะ ไม่เป็นปัญหา ขอบคุณสำหรับโค้ดวันที่นะคะ
ตอบลบพี่ครับถ้าเราจะอัพเดท สถานะลูกค้าว่าชำระเงินแล้ว ต้องทำยังไง ต้องเขียน Code ยังไงครับ
ตอบลบขอบคุณครับ
แบบว่าแจ้งเตือนลูกค้าอะครับว่ายังไม่ ชำระเงิน,ชำระแล้ว
โทดทีครับผมลืมสอนอ่ะ แต่เขียนโค๊ดเอาไว้แล้ว ลองเอาโค๊ดข้างล่างไปประยุกต์ดูนะครับ
ลบif(isset($_POST['od_id'])&&isset($_POST['od_status'])){//บันทึกสถานะการชำระเงิน
$odid=$_POST['od_id'];//รหัสใบสั่งซื้อ ข้อมูลถูกจัดเก็บแบบอาเรย์
$odst=$_POST['od_status'];//สถานะการสั่งซื้อ ข้อมูลจะอยู่ในรูปอาเรย์เช่นกัน
for($olo=0;$olo<count($odid);$olo++){
//อัพเดทสถานะการชำระเงิน
$ChkOrder=$conn->Execute('SELECT od_status FROM tb_order WHERE od_id='.$odid[$olo]);
if($ChkOrder->fields[0]<3){
$conn->Execute("UPDATE tb_order SET od_status='".$odst[$olo]."' WHERE od_id=".$odid[$olo]);
$UpdateProduct=$conn->Execute("SELECT * FROM tb_orderview WHERE od_id=".$odid[$olo]);
if($odst[$olo]>=3){
while(!$UpdateProduct->EOF){
$conn->Execute('UPDATE tb_product SET pd_amount=pd_amount-'. $UpdateProduct->fields['odv_amount'].' WHERE pd_id='.$UpdateProduct->fields['pd_id']) ;//ตัดสต๊อค
$UpdateProduct->MoveNext();
}
}
}
$ChkOrder->Close();
}
echo "<script>alert('อัพเดทสถานะการชำระเงินเรียบร้อยแล้ว');</script>";
}
ไม่ทราบว่า เราต้องเอาไปใส่ในส่วนไหนอะครับผม งงมาก
ลบไฟล์จากบทความนี้นะครับ ->http://php-for-ecommerce.blogspot.com/2011/03/admin-1.html
ลบใส่ก่อนคำสั่ง $showorder=false;
และให้สร้าง hidden field ชื่อ od_id มารับค่า รหัสสั่งซื่้อด้วยนะครับ
เช่นในลูป while(!$rs_showorder->EOF){}
ให้สร้างดังนี้ <input type="hidden" name="od_id[]" value="<?=$rs_showorder->fields['od_id']?>">
ขอบคุณครับ
ลบพี่คับผมอยากได้ไฟล์ส่วนนี้ที่สมบูรณ์อะคับผมทำต่อไม่ถูกช่วยหน่อยนะคับ
ลบอยู่ตรงนี้ครับ -->http://php-for-ecommerce.blogspot.com/2011/03/admin-1.html
ลบผมเขียนเพิ่มให้แล้ว
ไฟล์ชื่อ admin_showorder.php นะครับ สังเกตุดูให้ดี
ขอถามหน่อยคะ พอดีจะเปลี่ยนรูปบบ css อย่างเช่นพื้นหลังคะ แต่ลองเปลี่ยนเเล้ว พอรัน f12 มันไม่ยอมเปลี่ยน แต่หน้า design เปลี่ยนเเล้ว ไม่ทราบว่าเป็นเพราะอะไรเหรอคะ
ตอบลบลองกดรีเฟซ 1 รอบ หรือเคลียร์แคชในเบราเซอร์ดูครับ
ลบพี่ครับมัน error บรรทัด $ChkOrder->Close(); อะครับ
ตอบลบเครียดมากเลยอัพสเตตัสไม่ได้
ทำได้แล้ว ^^ พี่ครับถ้าผมอยากให้สินค้าขายดี มันเปลี่ยนสถานะของสินค้าโดยที่เราไม่ใช่คนปรับเอง ทำไงดีครับ
ตอบลบพี่ครับผมต้องทำรายงานตามช่วงเวลาอะครับ และมันไม่ออก เศร้า T^T
ตอบลบ