จัดการข้อมูลการสั่งซื้อของลูกค้า(Admin) ตอนที่ 1 ค้นหาข้อมูลการสั่งซื้อของลูกค้า จาก วัน เดือน ปี หรือ ชื่อของลูกค้า
ท่านอาจจะงงกับบทความก่อนหน้านี้ ที่ว่าด้วยเรื่องของ ASP.NET ซึ่งอาจจะดูนอกเนื้อหาของBlogนี้ซักหน่อยคับ ความจริงแล้ว ผมทำบทความ ASP.NET ทั้ง 3 บทความเสร็จก่อนบทความสอน PHP E-Commerce ซะอีก แต่ผมได้ปิดการแสดงผลไว้ เพราะตอนนั้นลังเลว่าจะสอน ASP.NET หรือ PHP ดีคับ และเห็นว่าช่วงหลังๆนี้ไม่มีบทความอัพเดทให้ท่านได้อ่านกันเลย ก็เลยเอาบทความเก่าๆมาลงแทน(กลัวตกอันดับจากกูเกิลด้วยคับ อิอิ)
เอาล่ะคับ เพื่อไม่ให้เป็นการเสียเวลา เนื้อหาต่อไปที่ผมจะสอนก็คือ การดูข้อมูลการสั่งซื้อของลูกค้า/อัพเดทสถานะการชำระเงิน ซึ่งผมจะขอแบ่งเป็นตอนๆไปคับ เพราะเนื่องจากเนื้อหาค่อนข้างจะเยอะ ไม่สามารถนำมายัดใส่ในบทความเดียวได้ ดังนั้น บทความตอนนี้ผมจะสอนแค่ การค้นหาข้อมูลการสั่งซื้อของลูกค้า โดยสามารถค้นหาจาก วัน เดือน ปี ที่สั่งซื้อ หรือ ชื่อ-สกุล หรือ username ก็ได้คับ ดูผลลัพธ์ได้จากที่นี่คับ จากนั้นเราก็มาลุยกันเลย
ท่านยังจำบทความเหล่านี้ที่ผมได้สอนท่านไปได้ไหมคับ
ระบบทะเบียนสินค้า ตอนที่ 1
ระบบทะเบียนสินค้า ตอนที่ 2
ระบบทะเบียนสินค้า ตอนที่ 3
เราจะใช้Templateเดิม และเราจะทำการสร้างไฟล์ขึ้นมา 1 ไฟล์ ชื่อ admin_showorder.php แล้วใช้ Dreamweaver Design ให้ได้ดังรูปคับ
จากนั้นกลับไปที่ไฟล์ admin_showorder.php ให้ แก้ไข Code ตามนี้เลยคับ
ถ้าทำถูกต้อง ก็จะได้ผลลัพธ์ตามนี้ หากติดปัญหาตรงไหน สามารถสอบถามได้ ยินดีที่จะตอบคำถามคับ ^^
ท่านยังจำบทความเหล่านี้ที่ผมได้สอนท่านไปได้ไหมคับ
ระบบทะเบียนสินค้า ตอนที่ 1
ระบบทะเบียนสินค้า ตอนที่ 2
ระบบทะเบียนสินค้า ตอนที่ 3
เราจะใช้Templateเดิม และเราจะทำการสร้างไฟล์ขึ้นมา 1 ไฟล์ ชื่อ admin_showorder.php แล้วใช้ Dreamweaver Design ให้ได้ดังรูปคับ
![]() |
| ไฟล์ admin_showorder.php (Design) |
เปิดไฟล์ leftmenu.php ขึ้นมาแล้ว Copy Code เหล่านี้ไปทับของเดิม
จากนั้นกลับไปที่ไฟล์ admin_showorder.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();?>
ถ้าทำถูกต้อง ก็จะได้ผลลัพธ์ตามนี้ หากติดปัญหาตรงไหน สามารถสอบถามได้ ยินดีที่จะตอบคำถามคับ ^^


อ้อ ลืมไปคับ สำหรับdatabaseลที่ใช้คือ ผมใช้database ตามในบทความนี้คับ
ตอบลบhttp://pnwtt1987.blogspot.com/2011/01/shopping-cart-2.html
ช่วยสอนต่อได้มั้ยค๊ะ
ตอบลบสอนต่อได้ไหมคับท่าน คือผมอยากศึกษาต่อนะคับ
ตอบลบอยากให้มีการจอง มีรูปแบบการชำระเงินสินค้าว่าจะจ่ายด้วยการโอนเงิน
หรือ ผ่อนชำระ
และประมูลเจ้าของกิจการเท่านั้นที่เปิดประมูลได้แล้วสมาชิกก็มาเสนอราคาการประมูล
ที่ผมเขียนมาอย่างนี้อยากให้ช่วยนะคับถ้าท่านจะเรียกค่าเหนื่อยเท่าไหร่บอกเลยนะคับผมยินดี ขอบคุณล่วงหน้าครับ
ขอบเขตมันกว้างไปครับ ไม่ว่าจะการผ่อนชำระสินค้าและประมูลสินค้า
ตอบลบโดยเฉพาะประมูลสินค้า สามารถแยกออกมาเป็นเว็บประมูลสินค้าได้เลยนะครับ
พี่ครับทำยังไงถึงจะกดเซฟเปลี่ยนสถานะการชำระเงินได้ครับ
ตอบลบแล้วข้อในฐานข้อมูลก็เปลี่ยนตามด้วยครับ
พี่ช่วยทำให้ดูด้วยได้ไหมครับ(ขอบคุณครับ)
@deksp
ตอบลบถ้ามีเวลาจะมาอัพเดทการSaveสถานะการชำระเงิน ในบทความนี้ให้ครับ ^_^
ขอบคุณมากครับ
ตอบลบพี่ใจดีจังมาแบ่งปันความรู้อีกเยอะๆนะครับ^^
@deksp
ตอบลบตอนนี้อัพเดท การบันทึกสถานะการชำระเงินให้แล้วนะครับ ^__^
อ่านได้จากบทความนี้เลย->http://php-for-ecommerce.blogspot.com/2011/04/admin-2.html
ผมอัพเดทCodeในไฟล์ admin_showorder.phpเท่านั้นนะครับ
ดูตัวอย่างได้ที่นี่เลย->http://panuwat.orgfree.com/crochet/admin_showorder.php?day=0&mount=0&year=2011&mbname=&bt_search=%A4%E9%B9%CB%D2
ขอบคุณมากครับ
ตอบลบพี่ครับผมอยากทราบว่าหน้า fp_register.php ถึงสมัคสมาชิกไม่ได้ครับ
แต่ในหน้า flogin.php สมัคสมาชิกได้
รบกวนช่วยดูให้ทีนะครับ
เปลี่ยน id และ name ให้กับ Textfield ใหม่เลยครับ (โทดทีที่ไม่ได้เช็ค)
ลบเพราะมันไปชนกับ Textfield UserและPassword ของLoginครับ
เช่นเปลี่ยนเป็น User1,Pass1
และแก้ไขคำสั่งในjQuery เปลี่ยนเป็น
var User = $("#User1").val();
var Pass = $("#Pass1").val();
และคำสั่งใน PHP เปลี่ยนเป็น $_POST['User1']และ$_POST['Pass1']
อัพเดทสถานะยังไงหรอครับพี่ กดแล้วก็"ม่มีไรขึ้นเลยครับ
ตอบลบขอบคุณล่วงหน้าครับ
ศึกษาจากบทความนี้ครับ -> จัดการข้อมูลการสั่งซื้อของลูกค้า(Admin) ตอนที่ 2 ดูข้อมูลการสั่งซื้อของลูกค้าและอัพเดทสถานะการชำระเงิน
ลบ