ช่วยมาดู Code ให้ทีครับว่าจะเขียนยังไง มีรูปตัวอย่าง + code ครับ
Code (PHP)
<center>
<h2>
รายงานการสั่งซื้อ<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tbody>
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่สั่งซื้อ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">รหัสลูกค้า</td>
<td width="180" align="center">ชื่อ-นามสกุล</td>
<td width="70" align="center">รหัสสินค้า</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="42">จำนวน</td>
<td width="34">หน่วย</td>
<td width="120" align="center">จำนวนเงิน (บาท)</td>
</tr>
<?php
$Receipt_ID= '';
$Order_Date = "";
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center">
<? if($Order_Date != $objResult["Order_Date"])
{
echo $objResult["Order_Date"];
}
$Order_Date = $objResult["Order_Date"];
?>
<!-- <?php echo $objResult["Order_Date"];?> --></div></td>
<td align="center">
<? if($Receipt_ID != $objResult["Receipt_ID"])
{
echo $objResult["Receipt_ID"];
}
$Receipt_ID = $objResult["Receipt_ID"];
?>
</td>
<td align="center"><?php echo $objResult["Cus_ID"];?></td>
<td><?php echo $objResult["Cus_Name"];?></td>
<td><div align="center"><?php echo $objResult["Pd_ID"];?></div></td>
<td><?php echo $objResult["Pd_Name"];?></td>
<td align="center"><?php echo number_format($objResult["Pd_Price"]);?></td>
<td align="center"><?php echo $objResult["Od_Amount"];?></td>
<td align="center"><?php echo number_format($objResult["Od_Sum"]);?>
<?
$sum = $objResult["Od_Sum"];
$total +=$sum;
?>
</td>
<tr bgcolor=#FF9966>
<td colspan="8" ><div align="right">รวม</div></td>
<td colspan="1" align="center"><?php echo number_format($sum);?>
</td>
</tr>
<?php
}
?>
<tr bgcolor=#33FFFF>
<td colspan="8" ><div align="right">รวมทั้งหมด</div>
</td>
<td colspan="1" align="center"><?php echo number_format($total);?></td>
</tr>
</tbody>
</table>
Date :
2015-11-16 15:05:58
By :
progamer2000
ลองอีกทีจิ
Code (PHP)
<center>
<h2>
รายงานการสั่งซื้อ<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tbody>
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่สั่งซื้อ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">รหัสลูกค้า</td>
<td width="180" align="center">ชื่อ-นามสกุล</td>
<td width="70" align="center">รหัสสินค้า</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="42">จำนวน</td>
<td width="34">หน่วย</td>
<td width="120" align="center">จำนวนเงิน (บาท)</td>
</tr>
<?php
$Receipt_ID= '';
$Order_Date = "";
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center">
<? if($Order_Date != $objResult["Order_Date"])
{
echo $objResult["Order_Date"];
}
$Order_Date = $objResult["Order_Date"];
?>
<!-- <?php echo $objResult["Order_Date"];?> --></div></td>
<td align="center">
<? if($Receipt_ID != $objResult["Receipt_ID"])
{
echo $objResult["Receipt_ID"];
}
$Receipt_ID = $objResult["Receipt_ID"];
?>
</td>
<td align="center"><?php echo $objResult["Cus_ID"];?></td>
<td><?php echo $objResult["Cus_Name"];?></td>
<td><div align="center"><?php echo $objResult["Pd_ID"];?></div></td>
<td><?php echo $objResult["Pd_Name"];?></td>
<td align="center"><?php echo number_format($objResult["Pd_Price"]);?></td>
<td align="center"><?php echo $objResult["Od_Amount"];?></td>
<td align="center"><?php echo number_format($objResult["Od_Sum"]);?>
<?
$sum = 0;
$sum = $objResult["Od_Sum"];
$total +=$sum;
?>
</td>
<tr bgcolor=#FF9966>
<td colspan="8" ><div align="right">รวม</div></td>
<td colspan="1" align="center"><?php echo number_format($sum);?>
</td>
</tr>
<?php
}
?>
<tr bgcolor=#33FFFF>
<td colspan="8" ><div align="right">รวมทั้งหมด</div>
</td>
<td colspan="1" align="center"><?php echo number_format($total);?></td>
</tr>
</tbody>
</table>
Date :
2015-11-16 15:47:48
By :
progamer2000
ขอ query สำหรับสร้าง table พร้อมข้อมูลหน่อยคับ >< จะได้เอามาลองเทส
Date :
2015-11-16 16:31:24
By :
progamer2000
ตอบความคิดเห็นที่ : 5 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-16 16:31:24
รายละเอียดของการตอบ ::
ตอนลอง ผมไม่ได้ให้สินค้าไปเพราะว่า ตารางสินค้า เยอะมาก
Code (SQL)
Table structure for table `tb_order`
--
CREATE TABLE IF NOT EXISTS `tb_order` (
`Order_ID` int(5) unsigned zerofill NOT NULL,
`Order_Date` date NOT NULL,
`Order_Deliverydate` date NOT NULL,
`Order_Paymentdate` date NOT NULL,
`Order_Paymenttype` set('เงินสด','โอน','เช็ค') NOT NULL DEFAULT 'โอน',
`Order_Ststus_buy` set('สั่งซื้อ','ยกเลิก') NOT NULL DEFAULT 'สั่งซื้อ',
`Order_Ststus_send` set('จัดส่งแล้ว','ไม่ได้จัดส่ง') NOT NULL DEFAULT 'ไม่ได้จัดส่ง',
`Order_Ststus_pay` set('ชำระแล้ว','ไม่ได้ชำระ') NOT NULL DEFAULT 'ไม่ได้ชำระ',
`Order_Evidence` varchar(50) NOT NULL,
`Order_Sum` int(10) NOT NULL,
`Order_Invoice_No` varchar(13) NOT NULL,
`Order_Place` varchar(100) NOT NULL,
`Cus_ID` int(5) unsigned zerofill NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `tb_order`
--
INSERT INTO `tb_order` (`Order_ID`, `Order_Date`, `Order_Deliverydate`, `Order_Paymentdate`, `Order_Paymenttype`, `Order_Ststus_buy`, `Order_Ststus_send`, `Order_Ststus_pay`, `Order_Evidence`, `Order_Sum`, `Order_Invoice_No`, `Order_Place`, `Cus_ID`) VALUES
(00001, '2015-11-15', '2015-11-16', '2015-11-16', 'โอน', 'สั่งซื้อ', 'จัดส่งแล้ว', 'ชำระแล้ว', '10.jpg', 3250, 'TH1234567897T', '45/58', 00001),
(00002, '2015-11-16', '2015-11-16', '2015-11-16', 'โอน', 'สั่งซื้อ', 'จัดส่งแล้ว', 'ชำระแล้ว', 'Capture.JPG', 34220, 'TH1234567897G', '98/888', 00002);
Table structure for table `tb_order_details`
--
CREATE TABLE IF NOT EXISTS `tb_order_details` (
`Od_ID` int(5) unsigned zerofill NOT NULL,
`Od_insurance` int(4) unsigned zerofill NOT NULL,
`Od_Amount` int(3) NOT NULL,
`Od_Sum` int(10) NOT NULL,
`Order_ID` int(5) unsigned zerofill NOT NULL,
`Pd_ID` int(5) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `tb_order_details`
--
INSERT INTO `tb_order_details` (`Od_ID`, `Od_insurance`, `Od_Amount`, `Od_Sum`, `Order_ID`, `Pd_ID`) VALUES
(00001, 1001, 2, 900, 00001, 45),
(00002, 1001, 3, 1350, 00001, 46),
(00003, 1001, 2, 1000, 00001, 58),
(00004, 1002, 2, 25200, 00002, 7),
(00005, 1002, 2, 9020, 00002, 21);
-- Table structure for table `tb_receipt`
--
CREATE TABLE IF NOT EXISTS `tb_receipt` (
`Receipt_ID` int(5) unsigned zerofill NOT NULL,
`Receipt_Payment_type` set('เงินสด','โอน') NOT NULL,
`Receipt_Date` date NOT NULL,
`Receipt_Sum` int(10) NOT NULL,
`Emp_ID` int(5) unsigned zerofill DEFAULT NULL,
`Order_ID` int(5) unsigned zerofill DEFAULT NULL,
`Rp_ID` int(5) unsigned zerofill DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `tb_receipt`
--
INSERT INTO `tb_receipt` (`Receipt_ID`, `Receipt_Payment_type`, `Receipt_Date`, `Receipt_Sum`, `Emp_ID`, `Order_ID`, `Rp_ID`) VALUES
(00001, 'โอน', '2015-11-16', 3250, 00002, 00001, NULL),
(00002, 'โอน', '2015-11-16', 34220, 00002, 00002, NULL);
ประวัติการแก้ไข 2015-11-16 17:10:22
Date :
2015-11-16 17:09:28
By :
beerlet
มี code หน้าที่แสดงทั้งหมดไหมคับ อิอิ จะได้แก้อย่างเดียวมะต้องเขียนเพิ่ม
Date :
2015-11-16 17:13:12
By :
progamer2000
code หน้า report ตัวนี้แหละคับ
Date :
2015-11-16 17:21:57
By :
progamer2000
ตอบความคิดเห็นที่ : 9 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-16 17:21:57
รายละเอียดของการตอบ ::
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT DISTINCT tb_product.*, tb_customer.*, tb_receipt.*, tb_order_details.*, tb_order.* FROM tb_product,tb_customer,tb_receipt,tb_order_details,tb_order WHERE tb_order_details.Pd_ID = tb_product.Pd_ID AND tb_order.Cus_ID = tb_customer.Cus_ID AND tb_receipt.Order_ID = tb_order.Order_ID AND tb_order_details.Order_ID = tb_order.Order_ID AND (Order_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<center>
<h2>
รายงานการสั่งซื้อ<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tbody>
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่สั่งซื้อ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">รหัสลูกค้า</td>
<td width="180" align="center">ชื่อ-นามสกุล</td>
<td width="70" align="center">รหัสสินค้า</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="42">จำนวน</td>
<td width="34">หน่วย</td>
<td width="120" align="center">จำนวนเงิน (บาท)</td>
</tr>
<?php
$Receipt_ID= '';
$Order_Date = "";
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center">
<? if($Order_Date != $objResult["Order_Date"])
{
echo $objResult["Order_Date"];
}
$Order_Date = $objResult["Order_Date"];
?>
<!-- <?php echo $objResult["Order_Date"];?> --></div></td>
<td align="center">
<? if($Receipt_ID != $objResult["Receipt_ID"])
{
echo $objResult["Receipt_ID"];
}
$Receipt_ID = $objResult["Receipt_ID"];
?>
</td>
<td align="center"><?php echo $objResult["Cus_ID"];?></td>
<td><?php echo $objResult["Cus_Name"];?></td>
<td><div align="center"><?php echo $objResult["Pd_ID"];?></div></td>
<td><?php echo $objResult["Pd_Name"];?></td>
<td align="center"><?php echo number_format($objResult["Pd_Price"]);?></td>
<td align="center"><?php echo $objResult["Od_Amount"];?></td>
<td align="center"><?php echo number_format($objResult["Od_Sum"]);?>
<?
$sum=$sum+$objResult["Od_Sum"];
?>
</td>
<tr bgcolor=#FF9966>
<td colspan="8" ><div align="right">รวม</div></td>
<td colspan="1" align="center"><?php echo number_format($sum);?>
<?
$total=+ $sum;
?>
</td>
</tr>
<?php
}
?>
<tr bgcolor=#33FFFF>
<td colspan="8" ><div align="right">รวมทั้งหมด</div>
</td>
<td colspan="1" align="center"><?php echo number_format($total);?></td>
</tr>
</tbody>
</table>
<br>
<?php
mysql_close($objConnect);
?>
Date :
2015-11-16 17:45:01
By :
beerlet
ให้ database table มาไม่ครบ ><
Date :
2015-11-16 18:02:14
By :
progamer2000
จะเอาออกมาแบบนี้หรือเป่า
ถ้าใช่ ก็ตามที่เคยพิมพ์ให้
Code (PHP)
<?php
$sum=$objResult["Od_Sum"];
$total += $sum;
?>
-----------
แบบเต็ม ผมตัด sql ออกบางส่วนเนื่องจากคุณไม่ได้ให้ tb_customer กับ tb_product มา
Code (PHP)
<?php
$objConnect=mysql_connect("localhost", "root", "") or die("Error Connect to Database");
$objDB=mysql_select_db("test");
$strSQL="SELECT DISTINCT tb_receipt.*, tb_order_details.*, tb_order.* FROM tb_receipt,tb_order_details,tb_order WHERE
tb_receipt.Order_ID = tb_order.Order_ID AND
tb_order_details.Order_ID = tb_order.Order_ID";
mysql_query("SET NAMES UTF8");
$objQuery=mysql_query($strSQL) or die("Error Query [".$strSQL."]");
$total = 0;
?>
<center>
<h2>
รายงานการสั่งซื้อ<br />
ตั้งวันที่ <?php echo $_POST['startdate0'];?> ถึงวันที่ <?php echo $_POST['startdate1'];?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tbody>
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่สั่งซื้อ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">รหัสลูกค้า</td>
<td width="180" align="center">ชื่อ-นามสกุล</td>
<td width="70" align="center">รหัสสินค้า</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="42">จำนวน</td>
<td width="34">หน่วย</td>
<td width="120" align="center">จำนวนเงิน (บาท)</td>
</tr>
<?php
$Receipt_ID='';
$Order_Date="";
while($objResult=mysql_fetch_array($objQuery)){
?>
<tr>
<td><div align="center">
<?php
if($Order_Date != $objResult["Order_Date"]){
echo $objResult["Order_Date"];
}
$Order_Date=$objResult["Order_Date"];
?>
<!-- <?php echo $objResult["Order_Date"];?> --></div></td>
<td align="center">
<?php
if($Receipt_ID != $objResult["Receipt_ID"]){
echo $objResult["Receipt_ID"];
}
$Receipt_ID=$objResult["Receipt_ID"];
?>
</td>
<td align="center"><?php echo $objResult["Cus_ID"];?></td>
<td><?php echo $objResult["Cus_Name"];?></td>
<td><div align="center"><?php echo $objResult["Pd_ID"];?></div></td>
<td><?php echo $objResult["Pd_Name"];?></td>
<td align="center"><?php echo number_format($objResult["Pd_Price"]);?></td>
<td align="center"><?php echo $objResult["Od_Amount"];?></td>
<td align="center"><?php echo number_format($objResult["Od_Sum"]);?>
<?php
$sum=$objResult["Od_Sum"];
$total += $sum;
?>
</td>
<tr bgcolor=#FF9966>
<td colspan="8" ><div align="right">รวม</div></td>
<td colspan="1" align="center"><?php echo number_format($sum);?>
</td>
</tr>
<?php
}
?>
<tr bgcolor=#33FFFF>
<td colspan="8" ><div align="right">รวมทั้งหมด</div>
</td>
<td colspan="1" align="center"><?php echo number_format($total);?></td>
</tr>
</tbody>
</table>
<br>
<?php
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2015-11-16 23:57:26
Date :
2015-11-16 23:51:05
By :
progamer2000
ลองดูครับ
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
mysql_query("SET NAMES UTF8");
//////////////// ไม่รู้ว่า field อะไรเป็นอะไร นะครับ ก็ยึดถือตามของเก่า ////////////////
$strSQL = <<<SQL
SELECT DISTINCT tb_product.*, tb_customer.*, tb_receipt.*, tb_order_details.*, tb_order.*
FROM tb_product,tb_customer,tb_receipt,tb_order_details,tb_order
WHERE tb_order_details.Pd_ID = tb_product.Pd_ID
AND tb_order.Cus_ID = tb_customer.Cus_ID
AND tb_receipt.Order_ID = tb_order.Order_ID
AND tb_order_details.Order_ID = tb_order.Order_ID
AND (Order_Date between '$_POST[startdate0]' and '$_POST[startdate1]')
SQL;
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<center>
<h2>รายงานการสั่งซื้อ<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่สั่งซื้อ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">รหัสลูกค้า</td>
<td width="180" align="center">ชื่อ-นามสกุล</td>
<td width="70" align="center">รหัสสินค้า</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="42">จำนวน</td>
<td width="34">หน่วย</td>
<td width="120" align="center">จำนวนเงิน (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Order_Date = ""; $sum=0; $total=0;
while($ro = mysql_fetch_array($objQuery)){
if($Order_Date && $Order_Date != $ro["Order_Date"] ){
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="8" align="right">รวม </td>
<td align="center"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Order_Date != $ro['Order_Date'])? $Order_Date=$ro['Order_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? $Receipt_ID=$ro['Receipt_ID'] : '';?></td>
<td align="center"><?php echo $ro['Cus_ID'];?></td>
<td><?php echo $ro['Cus_Name'];?></td>
<td><div align="center"><?php echo $ro['Pd_ID'];?></div></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center"><?php echo number_format($ro['Pd_Price']);?></td>
<td align="center"><?php echo $ro['Od_Amount'];?></td>
<td align="center"><?php echo number_format($ro['Od_Sum']);?></td>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum += $ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Order_Date){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="8" align="right">รวม </td>
<td align="center"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="8" align="right">รวมทั้งหมด </td>
<td align="center"><?php echo number_format($total);?></td>
</tr>
</table>
<br>
ประวัติการแก้ไข 2015-11-17 00:29:40
Date :
2015-11-17 00:24:17
By :
NewbiePHP
ตอบความคิดเห็นที่ : 14 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-17 00:24:17
รายละเอียดของการตอบ ::
ขอบคุณครับพี่ๆ 2 ท่านที่ช่วยเหลือ ตอนนี้ผมติดว่า SELECT แล้วมันไม่ออกมาครับ ดูแล้วอาจจะเยอะไปหน่อยนะตอน SELECT
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT DISTINCT tb_product.*, tb_customer.*, tb_employee.*, tb_receipt.*, tb_repair_details.*, tb_order.*, tb_order_details.*, tb_repair.* FROM tb_product,tb_customer,tb_employee,tb_receipt,tb_repair_details,tb_repair,tb_order_details,tb_order WHERE tb_repair_details.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Pd_ID = tb_product.Pd_ID AND tb_repair.Cus_ID = tb_customer.Cus_ID AND tb_order_details.Order_ID = tb_order.Order_ID AND tb_order_details.Pd_ID = tb_product.Pd_ID AND tb_order.Cus_ID = tb_customer.Cus_ID AND tb_receipt.Emp_ID = tb_employee.Emp_ID AND tb_receipt.Rp_ID = tb_repair.Rp_ID AND tb_receipt.Order_ID = tb_order.Order_ID AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<center>
<h2>รายงานการรับชำระประจำวัน<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" height="10">
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่รับชำระ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="70" align="center">เลขที่การซ่อม</td>
<td width="70" align="center">เลขที่สั่งซื้อ</td>
<td width="180" align="center">ชื่อลูกค้า</td>
<td width="70" align="center">ชื่อพนักงาน</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="80">ราคา (บาท)</td>
<td width="42">จำนวน</td>
<td width="80" align="center">รวม (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Receipt_Date = ''; $sum=1; $total=1;
while($ro = mysql_fetch_array($objQuery)){
if($Receipt_Date && $Receipt_Date != $ro["Receipt_Date"] ){
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="center"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Receipt_Date != $ro['Receipt_Date'])? $Receipt_Date=$ro['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? $Receipt_ID=$ro['Receipt_ID'] : '';?></td>
<td align="center"><?php echo $ro['Rp_ID'];?></td>
<td align="center"><?php echo $ro['Order_ID'];?></td>
<td><?php echo $ro['Cus_Name'];?></td>
<td><?php echo $ro['Emp_Name'];?></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center"><?php echo number_format($ro['Pd_Price']);?></td>
<td align="center"><?php echo $ro['Od_Amount'];?></td>
<td align="center">
<?php echo number_format($ro['Od_Sum']);?>
<?php echo number_format($ro['Rd_Sum']);?>
</td>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum += $ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Order_Date){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="center"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="9" align="right">รวมทั้งหมด </td>
<td align="center"><?php echo number_format($total);?></td>
</tr>
</table>
<br>
<?php
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2015-11-17 18:56:11 2015-11-17 19:27:21
Date :
2015-11-17 18:50:37
By :
beerlet
กรณีมีปัญหาแบบนี้แก้ไขยังไง
1. ให้มัน echo ออกมาก่อนอย่าพึ่งให้มันทำงาน
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT DISTINCT tb_product.*, tb_customer.*, tb_employee.*, tb_receipt.*, tb_repair_details.*, tb_order.*, tb_order_details.*, tb_repair.* FROM tb_product,tb_customer,tb_employee,tb_receipt,tb_repair_details,tb_repair,tb_order_details,tb_order WHERE tb_repair_details.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Pd_ID = tb_product.Pd_ID AND tb_repair.Cus_ID = tb_customer.Cus_ID AND tb_order_details.Order_ID = tb_order.Order_ID AND tb_order_details.Pd_ID = tb_product.Pd_ID AND tb_order.Cus_ID = tb_customer.Cus_ID AND tb_receipt.Emp_ID = tb_employee.Emp_ID AND tb_receipt.Rp_ID = tb_repair.Rp_ID AND tb_receipt.Order_ID = tb_order.Order_ID AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
echo $strSQL; // เพื่อดู sql เราว่าค่าถูกไหม
exit; // ให้มันทำถึงตรงนี้
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
2. กดรัน เพจไปเลย เหมือนปกติ มันจะ echo command sql ออกมา ให้ copy ไปเทสใน
localhost/phpmyadmin แล้วเลือก SQL แปะ command ลงไป รันดูว่าผ่านไหม
หรือโหลด โปรแกรม mysql-front มาใช้งานก็ได้สะดวกดี
ก็แก้ query ไปจนกว่ามันจะได้ค่าออกมานั่นแหละ
-----------------------
ตรงนี้คุณต้องแก้เองอะเพราะ เบื้องต้นคูณให้ table มาไม่ครบ
Date :
2015-11-17 21:50:24
By :
progamer2000
ตาม programer2000 เลยครับ เช็ค statement ใน phpmyadmin ง่ายเร็ว แก้ไขได้ทันที
ทีนี้ statement ที่คุณทำมันซ้ำซ้อนไปหน่อยลองดูอันนี้ครับ ไปลองคิวรี่ใน phpmyadmin ดูครับ
Code (SQL)
SELECT
DISTINCT pd.*, cu.*, em.*, rc.*, rd.*, od.*, odd.*, rp.*
FROM
tb_order od, tb_order_details odd,
tb_product pd,tb_customer cu, tb_employee em, tb_receipt rc,
tb_repair_details rd, tb_repair rp
WHERE 1
AND od.Cus_ID = cu.Cus_ID
AND od.Order_ID = odd.Order_ID
AND od.Order_ID = rc.Order_ID
AND rc.Emp_ID = em.Emp_ID
AND rc.Rp_ID = rp.Rp_ID
AND odd.Pd_ID = pd.Pd_ID
AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
3อันล่างเอาออก
AND pd.Pd_ID = rd.Pd_ID
AND rp.Cus_ID = cu.Cus_ID
AND rd.Rp_ID = rp.Rp_ID
ลอง echo statement ไปทดสอบเลยครับ
และ ถ้าเป็นไปได้ * (ดาว) เปลี่ยนเป็นชื่อฟีลด์ทีใช้งาน จริงๆ เลย ชัดเจนกว่าครับ
Date :
2015-11-17 22:24:07
By :
NewbiePHP
ตอบความคิดเห็นที่ : 19 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-17 22:24:07
รายละเอียดของการตอบ ::
ตอนผมไล่ join ใหม่ครับ ทีนี้เหมือนจะเจอปัญหาละครับ คือ สมมติผม join ไปทั้งหมด แต่เหลือตาราง Order มันจะขึ้นโชว์ พอ join ตาราง tb_order เข้าไป มันกลายเป็นว่างหมดเลยครับ เหมือนในรูปครับ (code ข้างล่างนี้คือ ขึ้นโชว์ข้อมูลละครับ)
ทีผมจะ join ตาราง tb_order กับตาราง tb_receipt เข้าไปยังไง
Code (PHP)
$strSQL = "SELECT DISTINCT tb_receipt.*, tb_employee.*, tb_repair.*, tb_repair_details.*, tb_product.*, tb_customer.* FROM tb_receipt,tb_employee,tb_repair,tb_order,tb_repair_details,tb_product,tb_customer WHERE tb_receipt.Emp_ID = tb_employee.Emp_ID AND tb_receipt.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Pd_ID = tb_product.Pd_ID AND tb_repair.Cus_ID = tb_customer.Cus_ID AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
Date :
2015-11-17 22:54:57
By :
beerlet
พยายามเข้า ก็ต้อง join เองอะ เป็นคน ทำ db เองนิ ><
Date :
2015-11-17 23:10:59
By :
progamer2000
ตอนนี้ได้แบบนี้แล้วครับ คือขาดแถวส้ส้มรวมแต่ละวันไม่ขึ้น 55+
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","2598083") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT DISTINCT tb_receipt.*, tb_employee.*, tb_repair.*, tb_repair_details.*, tb_product.*, tb_customer.* FROM tb_receipt,tb_employee,tb_repair,tb_repair_details,tb_product,tb_customer WHERE tb_receipt.Emp_ID = tb_employee.Emp_ID AND tb_receipt.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Rp_ID = tb_repair.Rp_ID AND tb_repair_details.Pd_ID = tb_product.Pd_ID AND tb_repair.Cus_ID = tb_customer.Cus_ID AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL2 = "SELECT DISTINCT tb_receipt.*, tb_employee.*, tb_order.*, tb_order_details.*, tb_product.*, tb_customer.* FROM tb_receipt,tb_employee,tb_order,tb_order_details,tb_product,tb_customer WHERE tb_receipt.Emp_ID = tb_employee.Emp_ID AND tb_receipt.Order_ID = tb_order.Order_ID AND tb_order_details.Order_ID = tb_order.Order_ID AND tb_order_details.Pd_ID = tb_product.Pd_ID AND tb_order.Cus_ID = tb_customer.Cus_ID AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
?>
<center>
<h2>รายงานการรับชำระประจำวัน<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" >
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่รับชำระ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="100" align="center">เลขที่การซ่อม</td>
<td width="80" align="center">เลขที่สั่งซื้อ</td>
<td width="180" align="center">ชื่อลูกค้า</td>
<td width="100" align="center">ชื่อพนักงาน</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="80">ราคา (บาท)</td>
<td width="42">จำนวน</td>
<td width="80" align="center">รวม (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Receipt_ID2= ''; $Receipt_Date = ''; $Receipt_Date2 = ''; $Rp_ID = ''; $Order_ID = ''; $sum=1; $total=1;
while($ro = mysql_fetch_array($objQuery)){
if ($ro)
{
while( $ro2 = mysql_fetch_array($objQuery2))
{
if($Receipt_Date && $Receipt_Date != $ro["Receipt_Date"] and $Receipt_Date2 && $Receipt_Date2 != $ro2["Receipt_Date"]){
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Receipt_Date2 != $ro2['Receipt_Date'])? $Receipt_Date2=$ro2['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID2 != $ro2['Receipt_ID'])? $Receipt_ID2=$ro2['Receipt_ID'] : '';?></td>
<td align="center"></td>
<td align="center"><?php echo ($Order_ID != $ro2['Order_ID'])? $Order_ID=$ro2['Order_ID'] : '';?></td>
<td><?php echo $ro2['Cus_Name'];?></td>
<td><?php echo $ro2['Emp_Name'];?></td>
<td><?php echo $ro2['Pd_Name'];?></td>
<td align="center"><?php echo number_format($ro2['Pd_Price']);?></td>
<td align="center"><?php echo $ro2['Od_Amount'];?></td>
<td align="right">
<?php echo number_format($ro2['Od_Sum']);?>
</td>
</tr>
<?php }
}
?>
<tr>
<td align="center"><?php echo ($Receipt_Date != $ro['Receipt_Date'])? $Receipt_Date=$ro['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? $Receipt_ID=$ro['Receipt_ID'] : '';?></td>
<td align="center"><?php echo $ro['Rp_ID'];?>
<!-- <?php echo ($Rp_ID != $ro['Rp_ID'])? $Rp_ID=$ro['Rp_ID'] : '';?> -->
</td>
<td align="center"></td>
<td><?php echo $ro['Cus_Name'];?></td>
<td><?php echo $ro['Emp_Name'];?></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center"><?php echo number_format($ro['Rd_Sum']);?></td>
<td align="center"></td>
<td align="right">
<?php echo number_format($ro['Rd_Sum']);?>
</td>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum += $ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Receipt_Date and $Receipt_Date2){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="9" align="right">รวมทั้งหมด </td>
<td align="right"><?php echo number_format($total);?></td>
</tr>
</table>
<br>
<?php
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2015-11-17 23:40:35
Date :
2015-11-17 23:35:06
By :
beerlet
เชื่อผมเถอะเขียนแบบนี้
select distinct
tb1.field1, tb1.field2,
tb2.field1, tb2.field2, tb2.field3,
.....
.....
แจงรายละเอียดที่ต้องใช้เลยครับ แล้วจะมองเห็นภาพว่า จะคิวรี่อะไร
อย่าขี้เกียจเลยครับ ประโยชน์เยอะด้วยครับ
อีกอย่างทำให้คนช่วยเห็นด้วยว่า ตารางไหน ฟีลด์ไหน เข้าใจเลย
Date :
2015-11-17 23:41:14
By :
NewbiePHP
ตอบความคิดเห็นที่ : 24 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-17 23:41:14
รายละเอียดของการตอบ ::
เขียนแบบนี้ป่าวครับ
Code (PHP)
SELECT
DISTINCT pd.*, cu.*, em.*, rc.*, rd.*, od.*, odd.*, rp.*
FROM
tb_order od, tb_order_details odd,
tb_product pd,tb_customer cu, tb_employee em, tb_receipt rc,
tb_repair_details rd, tb_repair rp
WHERE 1
AND od.Cus_ID = cu.Cus_ID
AND od.Order_ID = odd.Order_ID
AND od.Order_ID = rc.Order_ID
AND rc.Emp_ID = em.Emp_ID
AND rc.Rp_ID = rp.Rp_ID
AND odd.Pd_ID = pd.Pd_ID
AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
Date :
2015-11-17 23:53:51
By :
beerlet
ตอบความคิดเห็นที่ : 24 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-17 23:41:14
รายละเอียดของการตอบ ::
Code ประมาณนี้มั้ยครับ พี่
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT DISTINCT
tb_receipt.Receipt_ID, tb_receipt.Receipt_Date , tb_receipt.Emp_ID , tb_receipt.Rp_ID,
tb_employee.Emp_Name,
tb_repair.Rp_ID, tb_repair.Cus_ID,
tb_repair_details.Pd_ID, tb_repair_details.Rp_ID, tb_repair_details.Rd_Sum,
tb_product.Pd_Name,
tb_customer.Cus_Name
FROM
tb_receipt,
tb_employee,
tb_repair,
tb_repair_details,
tb_product,
tb_customer
WHERE
tb_receipt.Emp_ID = tb_employee.Emp_ID
AND tb_receipt.Rp_ID = tb_repair.Rp_ID
AND tb_repair_details.Rp_ID = tb_repair.Rp_ID
AND tb_repair_details.Pd_ID = tb_product.Pd_ID
AND tb_repair.Cus_ID = tb_customer.Cus_ID
AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL2 = "SELECT DISTINCT
tb_receipt.Receipt_ID, tb_receipt.Receipt_Date, tb_receipt.Emp_ID, tb_receipt.Rp_ID,
tb_employee.Emp_Name,
tb_order.Order_ID, tb_order.Cus_ID,
tb_order_details.Pd_ID, tb_order_details.Order_ID, tb_order_details.Od_Amount, tb_order_details.Od_Sum,
tb_product.Pd_Name, tb_product.Pd_Price,
tb_customer.Cus_Name
FROM
tb_receipt,
tb_employee,
tb_order,
tb_order_details,
tb_product,
tb_customer
WHERE
tb_receipt.Emp_ID = tb_employee.Emp_ID
AND tb_receipt.Order_ID = tb_order.Order_ID
AND tb_order_details.Order_ID = tb_order.Order_ID
AND tb_order_details.Pd_ID = tb_product.Pd_ID
AND tb_order.Cus_ID = tb_customer.Cus_ID
AND (Receipt_Date between '".$_POST['startdate0']."' and '".$_POST['startdate1']."')";
mysql_query("SET NAMES UTF8");
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
?>
ประวัติการแก้ไข 2015-11-18 00:54:25
Date :
2015-11-18 00:49:38
By :
beerlet
Code (SQL)
SELECT *
FROM (
SELECT
r.Receipt_Date, r.Receipe_ID, r.Order_ID, '' Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name, p.Pd_Price, od.Od_Amount, od.Od_Sum
FROM tb_receipt r, tb_employee e, tb_order o, tb_order_details od, tb_product p
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Pd_ID = p.Pd_ID
AND od.Order_ID = o.Order_ID
AND o.Cus_ID = c.Cus_ID
AND r.Order_ID = o.Order_ID
AND r.Emp_ID = e.Emp_ID
UNION ALL
SELECT
r.Receipt_Date dte, r.Receipe_ID, '' Order_ID, r.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name, p.Pd_Price, rpd.Rp_Amount , rpd.Rp_Sum
FROM tb_receipt r, tb_employee e, tb_repair rp, tb_repare_details rpd, tb_product p
WHERE (rc.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]'
AND rpd.Pd_ID = p.Pd_ID
AND rpd.Rp_ID = rp.Rp_ID
AND rp.Cus_ID = c.Cus_ID
AND rp.Rp_ID = r.Rp_ID
AND r.Emp_ID = e.Emp_ID
) tmp
order by Receipt_Date, Receipe_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)
ลอง คิวรี่ก่อนครับ
ปล. ผมไม่ได้ ใส่จำนวน ใส่เองนะครับ
ประวัติการแก้ไข 2015-11-18 00:54:46 2015-11-18 00:58:20
Date :
2015-11-18 00:54:14
By :
NewbiePHP
555555 กว่าจะโชว์ของจริง เดาไปซะเยอะ
Code (SQL)
SELECT
t.Receipt_Date, t.Receipe_ID, t.Order_ID, t.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name,
p.Pd_Price, t.Od_Amount, t.Od_Sum
FROM (
SELECT r.Receipt_Date, r.Receipe_ID, r.Order_ID, '' Rp_ID,
r.Emp_ID, o.Cus_ID, od.Pd_ID, od.Od_Amount, o.Od_Sum
FROM tb_receipt r, tb_order o, tb_order_details od
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Order_ID = o.Order_ID AND r.Order_ID = o.Order_ID
UNION ALL
SELECT r.Receipt_Date dte, r.Receipe_ID, '', r.Rp_ID,
r.Emp_ID, rp.Cus_ID, rpd.Pd_ID, 0, rp.Rp_Sum
FROM tb_receipt r, tb_repair rp, tb_repare_details rpd, tb_product p
WHERE (rc.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]'
AND rpd.Rp_ID = rp.Rp_ID AND rp.Rp_ID = r.Rp_ID
) t
LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID
LEFT JOIN tb_customer c ON c.Cus_ID=t.Cus_ID
LEFT JOIN tb_product p ON p.Pd_ID=t.Pd_ID
order by Receipt_Date, Receipe_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)
Date :
2015-11-18 07:09:26
By :
NewbiePHP
เอา mysql_error() มาด้วยสิครับ และ ขอเป็น text ไม่เอารูปภาพ
Date :
2015-11-18 18:03:21
By :
NewbiePHP
ตอบความคิดเห็นที่ : 31 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-18 18:03:21
รายละเอียดของการตอบ ::
ต้องขอโทษด้วยนะ ผมก็ติดนิสัยชอบแคปให้ดูเพราะคนช่วยจะได้เห็นภาพแต่ดันลืม ไม่ได้เอา code ให้ด้วยครับ
Code (PHP)
$strSQL = "SELECT
t.Receipt_Date, t.Receipe_ID, t.Order_ID, t.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name,
p.Pd_Price, t.Od_Amount, t.Od_Sum
FROM (
SELECT r.Receipt_Date, r.Receipe_ID, r.Order_ID, '' Rp_ID,
r.Emp_ID, o.Cus_ID, od.Pd_ID, od.Od_Amount, o.Od_Sum
FROM tb_receipt r, tb_order o, tb_order_details od
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Order_ID = o.Order_ID AND r.Order_ID = o.Order_ID
UNION ALL
SELECT r.Receipt_Date dte, r.Receipe_ID, '', r.Rp_ID,
r.Emp_ID, rp.Cus_ID, rpd.Pd_ID, 0, rp.Rp_Sum
FROM tb_receipt r, tb_repair rp, tb_repare_details rpd, tb_product p
WHERE (rc.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]'
AND rpd.Rp_ID = rp.Rp_ID AND rp.Rp_ID = r.Rp_ID
) t
LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID
LEFT JOIN tb_customer c ON c.Cus_ID=t.Cus_ID
LEFT JOIN tb_product p ON p.Pd_ID=t.Pd_ID
order by Receipt_Date, Receipe_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die(mysql_error());
Code (PHP)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID LEFT JOIN tb_customer c ON c.C' at line 17
ประวัติการแก้ไข 2015-11-18 18:14:27
Date :
2015-11-18 18:12:31
By :
beerlet
) วงเล็ปปิด บันทัด 15 ครับ ลืมปิด โทษทีครับ
Date :
2015-11-18 18:50:41
By :
NewbiePHP
ตอบความคิดเห็นที่ : 33 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-18 18:50:41
รายละเอียดของการตอบ ::
ตอนนี้ได้แล้วครับ แต่เจอปัญหาอยู่ครับ
1.
เลขที่ใบเสร็จรับเงิน 1 = 00001 (ค่าในดาต้าเบส รูปที่2) ,
เลขที่การซ่อม 11 = 00011 (ค่าในดาต้าเบส รูปที่2)
,
เลขที่สั่งซื้อ 1 = 00001 (ค่าในดาต้าเบส รูปที่2) (ตามรูปที่1นะครับ สีเหลือง)
จากข้อ1 จะเพิ่ม 0000 ให้ตรงกับ ดาต้าเบสยังไงครับ
2. ชื่อสินค้าของรายการซ่อมสินค้ามันซ้ำกันครับ จริงๆ รายการซ่อมจะมีแค่ 2 สินค้า (ตามเส้นสีฟ้า รูปที่1)
จะแก้ยังไงครับ ชื่อสินค้าของรายการซ่อมมันซ้ำกันครับ
3.
ช่องราคา (บาท) ของรายการซ่อม มันไม่ออกตามราคาซ่อมดันออกราคาสินค้าที่ขาย
ช่องจำนวน รายการซ่อม ในดาต้าเบสไม่ได้เก็บไว้มันโชว์ จะให้โชว์เป็น 1 แทนได้มั้ยครับ
ช่องรวม (บาท) มันออกแบบรวมราคา 2 สินค้าที่ซ่อม แต่จริงๆมันควรจะออกราคาแต่ละสินค้า
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","2598083") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT
t.Receipt_Date, t.Receipt_ID, t.Order_ID, t.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name,
p.Pd_Price, t.Od_Amount, t.Od_Sum
FROM (
SELECT r.Receipt_Date, r.Receipt_ID, r.Order_ID, '' Rp_ID,
r.Emp_ID, o.Cus_ID, od.Pd_ID, od.Od_Amount, od.Od_Sum
FROM tb_receipt r, tb_order o, tb_order_details od
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Order_ID = o.Order_ID AND r.Order_ID = o.Order_ID
UNION ALL
SELECT r.Receipt_Date dte, r.Receipt_ID, '', r.Rp_ID,
r.Emp_ID, rp.Cus_ID, rpd.Pd_ID, 0, rp.Rp_Sum
FROM tb_receipt r, tb_repair rp, tb_repair_details rpd, tb_product p
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND rpd.Rp_ID = rp.Rp_ID AND rp.Rp_ID = r.Rp_ID
) t
LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID
LEFT JOIN tb_customer c ON c.Cus_ID=t.Cus_ID
LEFT JOIN tb_product p ON p.Pd_ID=t.Pd_ID
order by Receipt_Date, Receipt_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die(mysql_error());
?>
<center>
<h2>รายงานการรับชำระประจำวัน<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" >
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่รับชำระ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="100" align="center">เลขที่การซ่อม</td>
<td width="80" align="center">เลขที่สั่งซื้อ</td>
<td width="150" align="center">ชื่อลูกค้า</td>
<td width="150" align="center">ชื่อพนักงาน</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="80" align="center">ราคา (บาท)</td>
<td width="42">จำนวน</td>
<td width="80" align="center">รวม (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Emp_Name= ''; $Receipt_Date = ''; $Cus_Name = ''; $Rp_ID = ''; $Order_ID = ''; $sum=0; $total=0;
while($ro = mysql_fetch_array($objQuery)){
if($Receipt_Date && $Receipt_Date != $ro["Receipt_Date"] )
{
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Receipt_Date != $ro['Receipt_Date'])? $Receipt_Date=$ro['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? $Receipt_ID=$ro['Receipt_ID'] : '';?></td>
<td align="center"><?php echo ($Rp_ID != $ro['Rp_ID'])? $Rp_ID=$ro['Rp_ID'] : '';?></td>
<td align="center"><?php echo ($Order_ID != $ro['Order_ID'])? $Order_ID=$ro['Order_ID'] : '';?></td>
<td><?php echo ($Cus_Name != $ro['Cus_Name'])? $Cus_Name=$ro['Cus_Name'] : '';?></td>
<td><?php echo ($Emp_Name != $ro['Emp_Name'])? $Emp_Name=$ro['Emp_Name'] : '';?></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center">
<?php
if($ro['Rd_Sum'] = $ro['Rd_Sum'])
{
echo number_format ($ro['Rd_Sum']);
}
else if($ro['Pd_Price'] = $ro['Pd_Price'])
{
echo number_format ($ro['Pd_Price']);
}
?>
<!-- <?php echo number_format($ro['Rd_Sum']);?>
<?php echo number_format($ro['Pd_Price']);?> -->
</td>
<td align="center"><?php echo $ro['Od_Amount'];?></td>
<td align="right">
<?php echo number_format($ro['Od_Sum']);?>
</td>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum +=$ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Receipt_Date){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="9" align="right">รวมทั้งหมด </td>
<td align="right"><?php echo number_format($total);?></td>
</tr>
</table>
ประวัติการแก้ไข 2015-11-18 19:02:42 2015-11-18 19:05:12 2015-11-18 19:08:31 2015-11-18 19:52:56
Date :
2015-11-18 19:00:41
By :
beerlet
สกดผิดอีก 555 แบบ ไม่ได้สร้าง database มาเทสต อะครับ ก็ต้องมี ผิดหกตกหล่น
ก็ต้องอาศัย จขกท ตรวจสอบล่ะครับ น่าจะได้แล้วนะครับ
ปล. statement ผมยังอ่อนๆ ถ้าใครเคยแกะ phpmyadmin จะรู้ว่า มันสุดยอดแค่ไหน
ประวัติการแก้ไข 2015-11-18 19:40:26
Date :
2015-11-18 19:38:25
By :
NewbiePHP
ตอบความคิดเห็นที่ : 35 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-18 19:38:25
รายละเอียดของการตอบ ::
ตอบความคิดเห็นที่ : 33 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-18 18:50:41
รายละเอียดของการตอบ ::
ตอนนี้ได้แล้วครับ แต่เจอปัญหาอยู่ครับ
1.
เลขที่ใบเสร็จรับเงิน 1 = 00001 (ค่าในดาต้าเบส รูปที่2) ,
เลขที่การซ่อม 11 = 00011 (ค่าในดาต้าเบส รูปที่2)
,
เลขที่สั่งซื้อ 1 = 00001 (ค่าในดาต้าเบส รูปที่2) (ตามรูปที่1นะครับ สีเหลือง)
จากข้อ1 จะเพิ่ม 0000 ให้ตรงกับ ดาต้าเบสยังไงครับ
2. ชื่อสินค้าของรายการซ่อมสินค้ามันซ้ำกันครับ จริงๆ รายการซ่อมจะมีแค่ 2 สินค้า (ตามเส้นสีฟ้า รูปที่1)
จะแก้ยังไงครับ ชื่อสินค้าของรายการซ่อมมันซ้ำกันครับ
3.
ช่องราคา (บาท) ของรายการซ่อม มันไม่ออกตามราคาซ่อมดันออกราคาสินค้าที่ขาย
ช่องจำนวน รายการซ่อม ในดาต้าเบสไม่ได้เก็บไว้มันโชว์ จะให้โชว์เป็น 1 แทนได้มั้ยครับ
ช่องรวม (บาท) มันออกแบบรวมราคา 2 สินค้าที่ซ่อม แต่จริงๆมันควรจะออกราคาแต่ละสินค้า
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","2598083") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase1");
$strSQL = "SELECT
t.Receipt_Date, t.Receipt_ID, t.Order_ID, t.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name,
p.Pd_Price, t.Od_Amount, t.Od_Sum
FROM (
SELECT r.Receipt_Date, r.Receipt_ID, r.Order_ID, '' Rp_ID,
r.Emp_ID, o.Cus_ID, od.Pd_ID, od.Od_Amount, od.Od_Sum
FROM tb_receipt r, tb_order o, tb_order_details od
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Order_ID = o.Order_ID AND r.Order_ID = o.Order_ID
UNION ALL
SELECT r.Receipt_Date dte, r.Receipt_ID, '', r.Rp_ID,
r.Emp_ID, rp.Cus_ID, rpd.Pd_ID, 0, rp.Rp_Sum
FROM tb_receipt r, tb_repair rp, tb_repair_details rpd, tb_product p
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND rpd.Rp_ID = rp.Rp_ID AND rp.Rp_ID = r.Rp_ID
) t
LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID
LEFT JOIN tb_customer c ON c.Cus_ID=t.Cus_ID
LEFT JOIN tb_product p ON p.Pd_ID=t.Pd_ID
order by Receipt_Date, Receipt_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die(mysql_error());
?>
<center>
<h2>รายงานการรับชำระประจำวัน<br />
ตั้งวันที่ <?php echo $_POST['startdate0']; ?> ถึงวันที่ <?php echo $_POST['startdate1']; ?></h2>
</center>
<table cellspacing=0 cellpadding=1 border=1 align="center" >
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่รับชำระ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="100" align="center">เลขที่การซ่อม</td>
<td width="80" align="center">เลขที่สั่งซื้อ</td>
<td width="150" align="center">ชื่อลูกค้า</td>
<td width="150" align="center">ชื่อพนักงาน</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="80" align="center">ราคา (บาท)</td>
<td width="42">จำนวน</td>
<td width="80" align="center">รวม (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Emp_Name= ''; $Receipt_Date = ''; $Cus_Name = ''; $Rp_ID = ''; $Order_ID = ''; $sum=0; $total=0;
while($ro = mysql_fetch_array($objQuery)){
if($Receipt_Date && $Receipt_Date != $ro["Receipt_Date"] )
{
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Receipt_Date != $ro['Receipt_Date'])? $Receipt_Date=$ro['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? $Receipt_ID=$ro['Receipt_ID'] : '';?></td>
<td align="center"><?php echo ($Rp_ID != $ro['Rp_ID'])? $Rp_ID=$ro['Rp_ID'] : '';?></td>
<td align="center"><?php echo ($Order_ID != $ro['Order_ID'])? $Order_ID=$ro['Order_ID'] : '';?></td>
<td><?php echo ($Cus_Name != $ro['Cus_Name'])? $Cus_Name=$ro['Cus_Name'] : '';?></td>
<td><?php echo ($Emp_Name != $ro['Emp_Name'])? $Emp_Name=$ro['Emp_Name'] : '';?></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center">
<?php
if($ro['Rd_Sum'] = $ro['Rd_Sum'])
{
echo number_format ($ro['Rd_Sum']);
}
else if($ro['Pd_Price'] = $ro['Pd_Price'])
{
echo number_format ($ro['Pd_Price']);
}
?>
<!-- <?php echo number_format($ro['Rd_Sum']);?>
<?php echo number_format($ro['Pd_Price']);?> -->
</td>
<td align="center"><?php echo $ro['Od_Amount'];?></td>
<td align="right">
<?php echo number_format($ro['Od_Sum']);?>
</td>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum +=$ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Receipt_Date){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="9" align="right">รวมทั้งหมด </td>
<td align="right"><?php echo number_format($total);?></td>
</tr>
</table>
Date :
2015-11-18 19:54:16
By :
beerlet
<td align="center"><?php echo $Rp_ID?number_format($ro['Rp_Sum']); number_format($ro['Pd_Price']);?></td>
<td align="center"><?php echo $Rp_ID? '' : $ro['Od_Amount'];?></td>
<td align="right"><?php echo $Rp_ID?number_format($ro['Rp_Sum']); number_format($ro['Od_Sum']);?>
echo str_pad($str,5,"0",STR_PAD_LEFT);
Date :
2015-11-18 20:32:09
By :
NewbiePHP
เปลี่ยน เซมิโคล่อน ตรงกลางเป็น โคล่อน ครับ ทั้งสองบันทัด
echo str_pad($str,5,"0",STR_PAD_LEFT); สำหรับ 00001 แก้ ตัวแปรเองครับ
Date :
2015-11-18 20:57:25
By :
NewbiePHP
ตอบความคิดเห็นที่ : 39 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-18 20:57:25
รายละเอียดของการตอบ ::
ขอบคุณครับ ติดยังปัญหา ตามรูปเลยครับ
1. ชื่อสินค้าของรายการซ่อมมันซ้ำ ผมต้องไปแก้ไขตรงไหนหรอครับ
2. ขื่อเลขที่การสั่งซื้อ อยู่ 00000 มาโชว์ในรายการซ่อมซะงั้น
3. ราคา (บาท) ของรายการซ่อม ผมลอง echo $ro['Rp_Sum'] ผลออกมาคือ เหมือนเป็นค่าว่างเลยครับ ทีผมคิดนะลืมเพิ่มตอน SELECT ใส่ฟิวของราคาซ่อม Rp_Sum = ตารางชื่อ tb_repair_details รึป่าวครับ
Code (PHP)
"SELECT
t.Receipt_Date, t.Receipt_ID, t.Order_ID, t.Rp_ID,
e.Emp_Name, c.Cus_Name, p.Pd_Name,
p.Pd_Price, t.Od_Amount, t.Od_Sum
FROM (
SELECT r.Receipt_Date, r.Receipt_ID, r.Order_ID, '' Rp_ID,
r.Emp_ID, o.Cus_ID, od.Pd_ID, od.Od_Amount, od.Od_Sum
FROM tb_receipt r, tb_order o, tb_order_details od
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND od.Order_ID = o.Order_ID AND r.Order_ID = o.Order_ID
UNION ALL
SELECT r.Receipt_Date dte, r.Receipt_ID, '', r.Rp_ID,
r.Emp_ID, rp.Cus_ID, rpd.Pd_ID, 0, rpd.Rd_Sum
FROM tb_receipt r, tb_repair rp, tb_repair_details rpd, tb_product p
WHERE (r.Receipt_Date BETWEEN '$_POST[startdate0]' AND '$_POST[startdate1]')
AND rpd.Rp_ID = rp.Rp_ID AND rp.Rp_ID = r.Rp_ID
) t
LEFT JOIN tb_employee e ON e.Emp_ID=t.Emp_ID
LEFT JOIN tb_customer c ON c.Cus_ID=t.Cus_ID
LEFT JOIN tb_product p ON p.Pd_ID=t.Pd_ID
order by Receipt_Date, Receipt_ID, (Order_ID>'') desc, COALESCE(Order_ID, Rp_ID)";
Code (PHP)
<table cellspacing=0 cellpadding=1 border=1 align="center" >
<tr bgcolor="#66FF99">
<td width="80" align="center">วันที่รับชำระ</td>
<td width="130" align="center">เลขที่ใบเสร็จรับเงิน</td>
<td width="100" align="center">เลขที่การซ่อม</td>
<td width="80" align="center">เลขที่สั่งซื้อ</td>
<td width="150" align="center">ชื่อลูกค้า</td>
<td width="150" align="center">ชื่อพนักงาน</td>
<td width="300" align="center">ชื่อสินค้า</td>
<td width="80" align="center">ราคา (บาท)</td>
<td width="42">จำนวน</td>
<td width="80" align="center">รวม (บาท)</td>
</tr>
<?php
$Receipt_ID= ''; $Emp_Name= ''; $Receipt_Date = ''; $Cus_Name = ''; $Rp_ID = ''; $Order_ID = ''; $Pd_Name = ''; $sum=0; $total=0;
while($ro = mysql_fetch_array($objQuery)){
if($Receipt_Date && $Receipt_Date != $ro["Receipt_Date"] )
{
////////// พิมพ์ยอดรวมรายวัน และเคลียร์ยอดรวมรายวันเป็น 0 พร้อมที่จะบวกใหม่///////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum); $sum=0;?></td>
</tr>
<?php }
////////// พิมพ์รายละเอียดรายวัน ///////////
?>
<tr>
<td align="center"><?php echo ($Receipt_Date != $ro['Receipt_Date'])? $Receipt_Date=$ro['Receipt_Date']: ''?></td>
<td align="center"><?php echo ($Receipt_ID != $ro['Receipt_ID'])? str_pad($Receipt_ID=$ro['Receipt_ID'],5,"0",STR_PAD_LEFT) : '';?></td>
<td align="center"><?php echo ($Rp_ID != $ro['Rp_ID'])? str_pad($Rp_ID=$ro['Rp_ID'],5,"0",STR_PAD_LEFT) : '';?></td>
<td align="center"><?php echo ($Order_ID != $ro['Order_ID'])? str_pad($Order_ID=$ro['Order_ID'],5,"0",STR_PAD_LEFT) : '';?></td>
<td><?php echo ($Cus_Name != $ro['Cus_Name'])? $Cus_Name=$ro['Cus_Name'] : '';?></td>
<td><?php echo ($Emp_Name != $ro['Emp_Name'])? $Emp_Name=$ro['Emp_Name'] : '';?></td>
<td><?php echo $ro['Pd_Name'];?></td>
<td align="center"><?php echo $Rp_ID?number_format($ro['Rp_Sum']): number_format($ro['Pd_Price']);?></td>
<td align="center"><?php echo $Rp_ID? '1' : $ro['Od_Amount'];?></td>
<td align="right"><?php echo $Rp_ID?number_format($ro['Rp_Sum']): number_format($ro['Od_Sum']);?>
</tr>
<?php
///////////////// sum ยอดรวม ///////////
$sum +=$ro['Od_Sum']; $total +=$ro['Od_Sum'];
}
if($Receipt_Date){
////////////////////////// พิมพ์ยอดรวมรายวันรายการสุดท้าย //////////////////////
?>
<tr bgcolor=#FF9966>
<td colspan="9" align="right">รวม </td>
<td align="right"><?php echo number_format($sum);?></td>
</tr>
<?php }
////////////////////////// พิมพ์ยอดรวมทั้งหมด //////////////////////
?>
<tr bgcolor=#33FFFF>
<td colspan="9" align="right">รวมทั้งหมด </td>
<td align="right"><?php echo number_format($total);?></td>
</tr>
</table>
Date :
2015-11-18 21:34:06
By :
beerlet
41.<td align="center"><?php echo $Rp_ID?number_format($ro['Od_Sum']): number_format($ro['Pd_Price']);?></td>
42.<td align="center"><?php echo $Rp_ID? '1' : $ro['Od_Amount'];?></td>
43.<td align="right"><?php echo number_format($ro['Od_Sum']);?>
จากการคิวรี่ เพราะใช้ union all จะไม่ ฟีลด์ชื่อ Rp_Sum มีแต่ Od_Sum เพราะ Od_Sum ถูกเรียกก่อน จึงใช้ชื่อนี้
select 1 as a, 2 as b union all
select 3 as x, 5 as y
field x-y จะถูกเปลี่ยนเป็น a b ตามลำดับ
Date :
2015-11-19 00:06:37
By :
NewbiePHP
มันมี 2 ส่วนที่ต้อง ตรวจสอบ
1 ตรวจสอบวาเหมือนกับของเก่าหรือไม่ ถ้าใช่แสดง ช่องว่าง
2 ถ้าไม่ใช่ ตรวจสอบว่าเป็นค่าว่างหรือไม่ ถ้าใช่ ใส่ช่องว่าง ถ้าไม่ใช่ ถึงใส่ pad
ลองใส่โค๊ดเองเลยครับ การตรวจสอบมีความสำคัญอย่างยิ่ง เป็นอัลกอลิธึมของคุณเอง
มันแสดงถึงประสบการณ์ของคุณด้วย สามารถมองเห็น event ต่างๆ ในงานได้ขนาดไหน
Date :
2015-11-19 06:34:55
By :
NewbiePHP
ตอบความคิดเห็นที่ : 43 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-19 06:34:55
รายละเอียดของการตอบ ::
ได้ครับผม พี่ครับช่วยดู code ให้หน่อยครับ คือ (จากรูป 1)จะมีรายการสินค้า 2 อย่าง และช่องสุดท้ายคือให้เลือกติ๊กว่ารายการไหนจะเปลี่ยนสินค้า แต่ที่ติดปัญหาคือ จากรูปที่1 มี 2 รายการ ถ้าเลือกรายการสินค้าแรกที่จะเปลี่ยนเลือกจำนวนเปลี่ยนและใส่หมายเหตุ และติ๊กด้านหลัง พอกดบันทึก มันก็ขึ้นโชว์ว่า จำนวนเปลี่ยน และหมายเหตุ ครบทุกอย่าง แต่พอเลือกรายการสินค้าที่ 2 ที่จะเปลี่ยนอย่างเดียว พอเลือกจำนวนและใส่หมายเหตุและติ๊ก กดบันทึกมันบันทึกค่าให้ แต่ ค่าจำนวนเปลี่ยน กับ หมายเหตุ ไม่มาเป็นค่าว่างเลยครับ ดูจากรูปที่2
จากที่สังเกตุนะครับคือ ถ้ารายการสั่งซื้ออันไหนมีหลายสินค้า เช่นมีสินค้า 3 รายการ ถ้าจะเปลี่ยนจะได้แค่รายการแรกเสมอ พอรายการ 2ขึ้นไป จะได้ค่าว่างจำนวนเปลี่ยนและหมายเหตุเลยครับ
รูปที่1
รูปที่2
ไฟล์ฟอร์มเปลี่ยนสินค้า
Code (PHP)
<table border="1" align="center">
<tr>
<th width="88"> <div align="center">รหัสสินค้า</div></th>
<th width="259"> <div align="center">ชื่อสินค้า</div></th>
<th width="48"> <div align="center">จำนวน</div></th>
<th width="40"> <div align="center">จำนวนเปลี่ยน</div></th>
<th width="40"> <div align="center">หมายเหตุ</div></th>
<th width="40"> <div align="center">หน่วย</div></th>
<th width="112"> <div align="center">ราคาต่อหน่วย</div></th>
<th width="130"> <div align="center">ราคารวม (บาท)</div></th>
<th></th>
</tr>
<?php
$strSQL1 = "SELECT tb_product.*,tb_order_details.* FROM tb_product,tb_order_details WHERE tb_product.Pd_ID = tb_order_details.Pd_ID AND tb_order_details.Order_ID = '".$_GET["Order_ID"]."' ";
$objQuery1 = mysql_query($strSQL1);
while ($objResult1 = mysql_fetch_assoc($objQuery1))
{
?>
<tr>
<td><div align="center">
<!-- <input name="Od_ID[]" type="hidden" value="<?php echo $objResult1['Od_ID']; ?>"> -->
<?php echo $objResult1['Pd_ID']; ?>
</div>
</td>
<td><div><?php echo $objResult1['Pd_Name']; ?></div></td>
<td><div align="center"><input name="Od_Amount[]" type="hidden" value="<?php echo $objResult1['Od_Amount']; ?>"><?php echo $objResult1['Od_Amount']; ?></div></td>
<td align="center">
<select name="changenumber[]" style="width:40px;">
<option >--</option>
<?php
$Od_Amount = $objResult1['Od_Amount'];
for ($qty=1;$qty<=$Od_Amount;$qty++)
{
?>
<option value="<?php echo $qty; ?>"><?php echo $qty; ?></option>
<?php
}
?>
</select>
</td>
<td><textarea name="note[]" class="note1" cols="21" rows=""></textarea></td>
<td><div align="center"><?php echo $objResult1['Pd_Unit']; ?></div></td>
<td><div align="right"><?php echo number_format($objResult1['Pd_Price']); ?></div></td>
<td><div align="right"><?php echo number_format($objResult1['Od_Sum']); ?></div></td>
<td>
<input name="Od_ID[]" type="checkbox" value="<?php echo $objResult1['Od_ID']; ?>">
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="7" align="right">รวมทั้งหมด (บาท)</td>
<td><div align="right" style="color:#F00"><strong><?php echo number_format($objResult['Order_Sum']); ?></strong></div></td>
</tr>
</table>
ไฟล์เซฟเปลี่ยนสินค้า
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","2598083") or die("Error Connect to Database");
mysql_select_db("mydatabase1");
mysql_query("SET NAMES UTF8");
for ($i = 0; $i < count($_POST['Od_ID']); $i++)
{
$Od_ID = mysql_real_escape_string($_POST['Od_ID'][$i]);
$changenumber = mysql_real_escape_string($_POST['changenumber'][$i]);
$note = mysql_real_escape_string($_POST['note'][$i]);
$strSQL2 = "INSERT INTO tb_change (Change_Date, Change_number, Change_Notes, Od_ID )VALUES (NOW(),'{$changenumber}','{$note}','{$Od_ID}') ";
mysql_query($strSQL2) or die(mysql_error());
}
if ($strSQL2)
{
echo "<center>บันทึกการเปลี่ยนสินค้าเรียบร้อยแล้ว</center>";
}
else
{
echo "<center>บันทึกการเปลี่ยนสินค้าเรียบร้อยแล้ว</center>";
}
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2015-11-19 18:11:26
Date :
2015-11-19 12:05:25
By :
beerlet
Load balance : Server 03