|
|
|
สอบถามการ Export MySQL data to Excel in PHP ครับ |
|
|
|
|
|
|
|
จากตัวอย่าง มีข้อมูลแสดงออกมา 3 ใบสั่งซื้อ แต่พอกดปุ่ม Expo Data ไฟล์Excelโหลดออกมาทั้ง 3 ไฟล์ เป็นข้อมูล รหัสการสั่งซื้อ: 40 ทั้งหมดครับ
รบกวนช่วยแนะนำหน่อยครับ
ความต้องการ
1.ถ้าจะให้ มีปุ่ม Expo Data อันเดียวโหลดทั้งหมด
2.หรือ มีหลายๆปุ่ม แต่ให้ข้อมูลแสดงออกมาตรงกับ รหัสการสั่งซื้อ
ส่วนCODE
<?php
session_start();
?>
<?php
require 'head.php';
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ประวัติการทำรายการ</title>
<style>
@import "global-order.css";
form {
margin: 20px auto;
width: 70%;
border: solid 0px;
font-size: 12px;
color: green;
}
form > * {
font: 14px tahoma;
padding: 3px;
}
input {
width: 200px;
margin: 3px;
background: #ffc;
border: solid 1px gray;
}
h2.warning {
text-align: left !important;
}
span#forget-pswd {
width: 425px;
display: block;
text-align: right;
margin: -5px 0px 10px 0px;
}
span#forget-pswd a {
font-size: 12px;
}
#head {
padding: 5px !important;
}
table {
margin: 20px auto;
border-collapse: collapse;
}
caption {
text-align: left;
padding-bottom: 3px !important;
}
td:nth-child(1) {
width: 250px;
text-align: left !important;
}
td:nth-child(2) {
width: 200px;
text-align: left !important;
}
td:nth-child(3), td:nth-child(4) {
width: 80px;
}
td:nth-child(5), td[colspan]+td {
width: 100px;
}
table th {
background: green;
color: yellow;
padding: 5px;
border-right: solid 1px white;
font-size:12px;
}
tr:nth-of-type(odd) {
background: lavender;
}
tr:nth-of-type(even) {
background: whitesmoke;
}
td {
text-align: center;
vertical-align: top;
padding: 3px 0px 3px 3px;
border-right: solid 1px white;
}
tr:last-child td {
border-top: solid 1px white;
background: powderblue !important;
padding: 5px;
font-weight: bold;
text-align: center !important;
}
caption > div {
float: right;
color: navy;
}
caption img {
height: 16px;
float:none;
vertical-align: bottom;
}
h3 {
text-align: center;
color: navy;
}
div#head > img {
vertical-align: bottom;
margin-right: 5px;
height: 24px;
}
h5 {
text-align: center;
margin: 0px;
}
</style>
<script src="js/jquery-2.1.1.min.js"> </script>
</head>
<body>
<div class="col-xs-10 col-md-10">
<?php
ini_set('display_errors', 1);
error_reporting(~0);
require 'connect.php';
$err = "";
$name = "";
if($_POST['customer_code']) {
$customer_code = $_POST['customer_code'];
$pswd = $_POST['pswd'];
//ตรวจสอบว่าอีเมลและรหัวผ่านที่ใส่เข้ามาถูกต้องหรือไม่
$sql = "SELECT * FROM customers WHERE customer_code = '$customer_code' AND password = '$pswd'";
$r = mysqli_query($objCon, $sql);
if(mysqli_num_rows($r)==0) {
$err = '<h2 class="warning">ท่านใส่รหัสลูกค้าหรือรหัสผ่านไม่ถูกต้อง</h2>';
}
else {
$data = mysqli_fetch_array($r);
$name = $data['firstname'] . " " . $data['lastname'];
$cust_id = $data['customer_code'];
//echo"$cust_id ";
$sql = "SELECT *, DATE_FORMAT(OrderDate, '%d-%m-%Y') AS OrderDate
FROM tr_orders WHERE customer_code = '$cust_id' ORDER BY oid DESC ";
$r = mysqli_query($objCon, $sql);
if(mysqli_num_rows($r) == 0) {
echo "<h3><font color='red'>ไม่พบ</font></h3>";
}
echo "<h5>ประวัติการทำรายการของ:<font color='red'>($cust_id)</font> $name</h5>";
while($data = mysqli_fetch_array($r)) {
$order_id = $data['oid'];
$date = $data['OrderDate'];
//กำหนดสถานะการapprove (ด้วยภาพ Yes&No)
$img_approve = "images/no.png";
if($data['status'] == "y") {
$img_approve = "images/yes.png";
}
$sql = "SELECT order_details.*, qproducts.*
FROM order_details LEFT JOIN qproducts
ON order_details.pro_id = qproducts.id
WHERE order_details.order_id = '$order_id'";
$result = mysqli_query($objCon, $sql);
?><tr>
<td>
</td>
</tr>
<table id='myTable' border='0' style='width:100%'>
<caption>
<b>วันที่: <?php echo $date; ?>
รหัสการสั่งซื้อ: <?php echo $order_id; ?></b>
<div>
<img src="<?php echo $img_approve;?>">การอนุมัติ</div>
</caption>
<center>
<tr><th>รหัสสินค้า</th><th>รหัสสั่งซื้อ</th><th>ชื่อสินค้า</th><th>จำนวน</th><th>ราคา</th><th>รวม</th></tr>
</center>
<?php
$grand_total = 0;
while($order = mysqli_fetch_array($result)) {
$sub_total = $order['quantity'] * $order['product_price'];
?>
<tr>
<td style="width:10%"><?php echo $order['product_code']; ?></td>
<td style="width:10%"><?php echo $order['ref_no']; ?></td>
<td style="width:50%"><?php echo $order['product_name']; ?></td>
<td style="width:10%"><?php echo $order['quantity']; ?></td>
<td style="width:10%"><?php echo $order['product_price']; ?></td>
<td><?php echo number_format($sub_total); ?></td>
</tr>
<?php
$grand_total += $sub_total;
}
?>
<tr><td colspan="5">รวมทั้งหมด</td><td><?php echo number_format($grand_total); ?></td></tr>
</table>
<a href='#' id='download_link' class='btn btn-info btn-sm' onClick='javascript:ExcelReport();'>Export Data</a>
<?php
} //end while
} //end else
}
//ถ้าไม่มีข้อมูลโพสเข้ามา หรือเกิดข้อผิดพลาด ให้แสดงฟอร์มสำหรับใส่อีเมลและรหัสผ่าน
if(!$_POST || $err != "") {
?>
<form method="post"><?php echo $err; ?>
<span>กรุณาใส่รหัสลูกค้าและรหัสผ่านที่ท่านใช้ในการสั่งซื้อสินค้า</span><br>
<input type="customer_code" name="customer_code" placeholder="รหัสลูกค้า *" required>
<input type="password" name="pswd" placeholder="รหัสผ่าน *" maxlength="20" required>
<button type="submit">ตกลง</button>
<span id="forget-pswd"><a href="#">ลืมรหัสผ่าน</a></span>
</form>
<?php
}
?>
</div>
</div>
</div>
</body>
</html>
<?php mysqli_close($objCon); ?>
<!-- เรียกใช้ javascript สำหรับ export ไฟล์ excel -->
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js" ></script>
<script src="https://unpkg.com/[email protected]/FileSaver.js" ></script>
<script>
function ExcelReport()//function สำหรับสร้าง ไฟล์ excel จากตาราง
{
var sheet_name="excel_sheet";/* กำหหนดชื่อ sheet ให้กับ excel โดยต้องไม่เกิน 31 ตัวอักษร */
var elt = document.getElementById('myTable');/*กำหนดสร้างไฟล์ excel จาก table element ที่มี id ชื่อว่า myTable*/
/*------สร้างไฟล์ excel------*/
var wb = XLSX.utils.table_to_book(elt, {sheet: sheet_name});
XLSX.writeFile(wb,'report.xlsx');//Download ไฟล์ excel จากตาราง html โดยใช้ชื่อว่า report.xlsx
}
</script>
<style type="text/css">
table {
border-collapse: collapse;
width:100%;
}
table, th, td {
border: 1px solid black;
}
</style>
ส่วนรูป Error
ไฟล์Excel
Tag : PHP, MySQL, HTML, Google Chrome, Mozilla Firefox, Apache
|
|
|
|
|
|
Date :
2021-10-25 08:38:17 |
By :
mrcool_307 |
View :
996 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่ม Sheet
Static
Code (PHP)
$sheet = $this->excel->getActiveSheet(0);
$this->sheet = $sheet;
$sheet->setTitle("Sheet1");
//Statement (Loop->data1)
$this->excel->createSheet();
$sheet = $this->excel->setActiveSheetIndex(1);
$this->sheet = $sheet;
$sheet->setTitle("Sheet2");
//Statement (Loop->data2)
$this->excel->createSheet();
$sheet = $this->excel->setActiveSheetIndex(2);
$this->sheet = $sheet;
$sheet->setTitle("Sheet3");
//Statement (Loop->data3)
Loop
Code (PHP)
$sheet_index = 0;
foreach ():
if ($sheet_index > 0) {
$this->excel->createSheet();
$sheet = $this->excel->setActiveSheetIndex($sheet_index);
} else {
$sheet = $this->excel->getActiveSheet(0);
}
$this->sheet = $sheet;
$sheet->setTitle("Title Name");
++$sheet_index;
endforeach;
|
|
|
|
|
Date :
2021-10-26 10:36:13 |
By :
Guest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|