|
|
|
css page-break-after กับการแบ่งหน้าที่ดึงข้อมูลมาจาก mysql |
|
|
|
|
|
|
|
ต้องการแบ่งหน้าพิมพ์รายงาน แบ่งข้อมูลหน้าละ 5หรือ10 รายการ และต้องการให้โชว์ด้วยว่า มีกี่ page เช่น ข้อมูลที่1-10 อยู่ page1 ตรงหัวมุม ต้องทำยังไงค่ะ สมมติว่าข้อมูลมี4รายการ ความจริงต้องอยู่หน้าเดียวกัน แต่ตอนนี้แยกเป็น2หน้า และหน้าแรกกลับโชว์ 1ข้อมูล หน้า2 กลับโชว์3ข้อมูล
Code (PHP)
<?
include('../Connections/conndb.php');
//include 'ไฟล์ส่วนหัว';
echo '
<table>
<tr>
<td align="left"><table width="750" border="0" align="left" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-top:5px double #000;">
<tr>
<td width="200" class="headerTitle01" align="center" valign="middle">ชื่อลูกค้า<br />
Customer Name</td>
<td width="50" class="headerTitle01" align="center" valign="middle">วันที่นัดหมาย<br />
Appointment Date</td>
<td width="80" class="headerTitle01" align="center" valign="middle">สถานที่<br />
Place</td>
<td width="200" class="headerTitle01" align="center" valign="middle">รายละเอียด<br />
Description</td>
<td width="150" align="center" valign="bottom" class="headerTitle01">การตอบรับของลูกค้า<br />
Feedback</td>
<td width="50" class="headerTitle01_r" align="center" valign="middle">หมายเหตุ<br />
Remarks</td>
</tr>
</table>
';
$sql = "SELECT * FROM activity,sales,customer,contactcus where activity.sid=sales.sid and activity.cid=customer.cid and activity.contact=contactcus.id_contact AND sales.username='yai' and activity.astatus!='0'"; // เลือก ตารางที่เราเก็บข้อมูล
$result = mysql_query($sql);
///////// การวนลูปโดยใช้ while loop จากฐานข้อมูล
while($row = mysql_fetch_array($result)){
////// การวนลูปโดยใช้ for
//for($i=1;$i<20;$i++){
$page_print = $row['aid']; /////รับค่าจากค่าที่วนลูป โดย for loop /// $array['id']; /// ใช้คำสั่งนี้เมื่อรับค่าจาก while loop
$data_show = 5;////////////// จำนวนที่จะสั่งปริ้นต่อหน้า
if($page_print%$data_show==0)
{
echo 'ไฟล์ส่วนท้าย';
echo "<div style='page-break-after: always'>";
echo "</div>";
//include'ไฟล์ส่วนหัว';
echo '
<table>
<tr>
<td align="left"><table width="750" border="0" align="left" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-top:5px double #000;">
<tr>
<td width="200" class="headerTitle01" align="center" valign="middle">ชื่อลูกค้า<br />
Customer Name</td>
<td width="50" class="headerTitle01" align="center" valign="middle">วันที่นัดหมาย<br />
Appointment Date</td>
<td width="80" class="headerTitle01" align="center" valign="middle">สถานที่<br />
Place</td>
<td width="200" class="headerTitle01" align="center" valign="middle">รายละเอียด<br />
Description</td>
<td width="150" align="center" valign="bottom" class="headerTitle01">การตอบรับของลูกค้า<br />
Feedback</td>
<td width="50" class="headerTitle01_r" align="center" valign="middle">หมายเหตุ<br />
Remarks</td>
</tr>
</table>
';
}
//echo "ข้อมูลที่จะแสดงทั้งหมด";
//echo $array['data'];
?>
<table>
<tr valign="top">
<td align="left" class="left_bottom"><? echo $row['cname'];?></td>
<td align="left" class="left_bottom"><? if ($row['dateStart'] !='0000-00-00 00:00:00') {
$dateStart=$row['dateStart'];
list($date, $time) = explode(" ", $dateStart);
list($Year, $month, $day) = explode("-", $date);
list($hours, $mins, $sec) = explode(":", $time);
$dateStart = (int)$day."/".(int)$month."/".($Year+543);
echo $dateStart;} else { echo "<center><font color='red'>ไม่ระบุเวลา</font></center>";}?></td>
<td align="left" class="left_bottom"><? echo $row['location'];?></td>
<td align="left" class="left_bottom">
<? if($row['atype']=='VS01') { echo "ประชุมกับลูกค้า - "; }
else if($row['atype']=='VS02') { echo "นำเสนอข้อมูล - "; }
else if($row['atype']=='VS03') { echo "Site Survey - "; }
else if($row['atype']=='VS04') { echo "แวะเยี่ยม สร้าง Relation - "; }
else if($row['atype']=='VS05') { echo "ตามรายละเอียดเพิ่มเติมของลูกค้า - "; }
else if($row['atype']=='VS06') { echo "ตามงาน / ตาม PO / ตามสัญญา - "; }
else if($row['atype']=='VS07') { echo "ตามหนี้ / ตามเอกสารการเงิน - "; }
else if($row['atype']=='VS08') { echo "Customer Database - "; }
else if($row['atype']=='VS09') { echo "On Job Training - "; }
else { echo ""; } ?>
<? echo $row['adetail'];?></td>
<td align="left" class="left_bottom"><? echo $row['feedback'];?></td>
<td align="left" class="left_right_bottom"><? echo $row['probability'];?>/
<?php if($row['probability']=='10') { echo "รวบรวมข้อมูล";}
else if($row['probability']=='20') { echo "นำเสนอเบื้องต้น";}
else if($row['probability']=='30') { echo "เก็บรายละเอียดหน้างาน";}
else if($row['probability']=='40') { echo "ขอราคา";}
else if($row['probability']=='50') { echo "เสนอราคา";}
else if($row['probability']=='65') { echo "ผ่านการพิจารณาเบื้องต้น";}
else if($row['probability']=='80') { echo "ผ่านการต่อรองเพื่อการตัดสินใจ";}
else if($row['probability']=='95') { echo "ผ่านการพิจารณา รอใบสั่งซื้อ";}
else if($row['probability']=='100') { echo "ได้รับใบสั่งซื้อ";}
else { echo "";}
?></td>
</tr>
</table>
<?
}
////จบการวนลูปข้อมูล
//include'ไฟล์ส่วนท้าย';
?>
Tag : PHP, MySQL, HTML/CSS
|
ประวัติการแก้ไข 2014-11-25 16:32:30
|
|
|
|
|
Date :
2014-11-25 16:29:59 |
By :
bsaranya |
View :
4994 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if($no % 10 == 0)
{
echo "<div style='page-break-after: always'>";
}
ประมาณนี้ครับ $no คือ ลำดับของ Row ครับ
|
|
|
|
|
Date :
2014-11-26 08:58:46 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะใส page-break เมื่อ ครบกำหนด และ ไมใส่หน้าสุดท้าย (หน้าสุดท้ายไม่ต้องใส่ เพื่อจะได้ไม่พิมพ์ หน้าเปล่า)
ปล. อีกนิด เอา ตรวจสอบ echo ไฟล์ ส่วนท้าย ไปไว้ ท้าย loop ครับ เอามาไว้ต้น loop มันก็ เปลี่ยนหน้า ก่อนพิมพ์นะครับ
และควรจะแยกกัน ระหว่าง ส่วนหัวกับส่วนท้าย
Code (PHP)
//ส่วนหัว
if( ($no % 10)==1){
echo ส่วนหัว:
}
echo เนื้องาน
// ส่วนท้าย
if( ($no % 10)==0 && (ceil($no/10)<$all_page) )
{
echo "<div style='page-break-after: always'>";
}
|
ประวัติการแก้ไข 2014-11-26 09:27:35 2014-11-26 09:30:45
|
|
|
|
Date :
2014-11-26 09:14:09 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2014-11-26 09:22:18 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทำตามแบบด้านบนค่ะ
Code (PHP)
<?
include('../Connections/conndb.php');
//ส่วนหัว
$sql = "SELECT * FROM customer";
$result = mysql_query($sql);
$no = mysql_num_rows($result);
if( ($no % 10)==1){
echo "ส่วนหัว:";
}
while($row = mysql_fetch_array($result)){
echo $row['cname']."<br/>";
}
// ส่วนท้าย
if( ($no % 10)==0 && (ceil($no/10)<$all_page) )
{
echo "<div style='page-break-after: always'></div>";
}
echo "ส่วนท้าย:";
?>
ส่วนหัว ไม่ขึ้นค่ะ
แล้วก็ไม่ขึ้นหน้าละ 10ด้วยค่ะ
$all_page คือ ?
หนูแนบรูปมาให้ดูด้วยค่ะ
|
|
|
|
|
Date :
2014-11-26 11:28:21 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างลองเทสต์
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<?php
//$no = mysql_num_rows($result);
// สมมุติ จำนวน reccord = 15
$all_rec = 15;
$all_page= ceil($all_rec/ 10);
for($no=1; $no<=$all_rec; $no++){
if( ($no % 10)==1){
echo "ส่วนหัว:<br>";
}
// ส่วนเนื้อหา
echo $no, ") เนื้อหา <br>";
// ส่วนท้าย
if( ($no % 10)==0 && (ceil($no/10)<$all_page) ){
echo "ส่วนท้าย ก่อน page-break นะครับ";
echo "<div style='page-break-after: always'></div>";
}
}
if(($all_rec % 10)>0) echo "ส่วนท้าย:";
?>
</body>
</html>
|
ประวัติการแก้ไข 2014-11-26 11:47:06 2014-11-26 11:50:39
|
|
|
|
Date :
2014-11-26 11:46:19 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้ว ขอบคุณ พี่ TC Admin กับ พี่Chaidhanan มากค่ะ
|
|
|
|
|
Date :
2014-11-26 14:14:06 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|