Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยดูโค้ดให้หน่อยครับ ใช้ while วนแสดงข้อมูลจากฐานข้อมูล แต่พอสั่งปริ้น แล้วไม่พอดีหน้า



 

ช่วยดูโค้ดให้หน่อยครับ ใช้ while วนแสดงข้อมูลจากฐานข้อมูล แต่พอสั่งปริ้น แล้วไม่พอดีหน้า

 



Topic : 122919



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



cardd

ผมใช้ CSS ในการแต่งหน้าเพจ
Code
body { background: rgb(204,204,204); margin: 0px; padding: 0px; } page[size="A4"] { background: white; display:block; width: 21cm; height: 29.7cm; margin: 0 auto; margin-bottom: 0.5cm; margin-top:0.5cm; box-shadow: 0 0 0.5cm rgba(0,0,0,0.5); } @media print { body, page[size="A4"] { margin: 0; box-shadow: 0; page-break-after: always; }


Code (PHP)
<?php
$host="localhost";
$user="root";
$pass="1234";
$dbname="pongkong";
putenv("TZ=Asia/Bangkok");
$connect=mysql_connect($host,$user,$pass) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
$connectdb=mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
mysql_query("SET character_set_results=UTF8");
mysql_query("SET character_set_client=UTF8");
mysql_query("SET character_set_connection=UTF8");
?>
<!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=utf-8" />
<title>Untitled Document</title>
<?
 include("barcode/tcpdf/tcpdf_barcodes_1d.php");
 $datein = explode("-", date("Y-m-d"));
 $thai_n=array("มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม");
 $thai_n2=array("ม.ค.", "ก.พ.", "มี.ค.", "เม.ษ.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.");
 $day = date("w");
 $month = date("m");
 $datein[0]; //year
 $datein[1]; //month
 $datein[2]; //day
 $d= $datein[2];
 if($month == $datein[1]) { $n= $thai_n2[date("n")-1]; } elseif ($month > $datein[1]) { $n= $thai_n2[date("n")-2];} else { $n= $thai_n2[$datein[1]-1]; }
 //$y= $datein[0] +543;

require("media/functionCards.php"); ?>
<link href="media/css/css_card.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?
$CardSQL = "SELECT member.*, profile.IDnumber, profile.dbirth, profile.mbirth, profile.ybirth FROM member LEFT JOIN profile ON member.IDstd = profile.IDstd WHERE member.class = '2' AND member.room = '1' AND member.yearin = '2558' ";
$QueryCard = mysql_query($CardSQL);
$ResultCard = mysql_fetch_array($QueryCard);
$y_start = $ResultCard["yearin"];
$y_end = $y_start+3;
$Cardin = "วันออกบัตร: $d $n $y_start<br>";
$Cardin2 = "$d $n $y_start<br>";
$Cardout = "วันหมดอายุ: $d $n $y_end";
$Cardout2 = "$d $n $y_end";
$NumRow = mysql_num_rows(mysql_query($CardSQL));
$sumprint = DoRow($NumRow);

for($sumpage=1;$sumpage<=7;$sumpage++){ ?>
<!-- START GEN CARD-->
<page size="A4"><!-- start page-->
<div style="text-align:right;"><? echo "page-".$sumpage;?></div> 
  <? for($i=1;$i<=5;$i++){  ?>
<!-- start Generate 1 Card-->
<? while($ResultCard = mysql_fetch_array($QueryCard)) {	?>
	<div id="containner" align="center"><!-- start containner-->
        <div id="main"> <!-- start main-->
            <div class="pic-resize"><?=Dopic($ResultCard["pic"]);?></div>
            <div id="front" class="card-resize"><!-- start front-->
                <div class="CardtxtData">
                    <div class="styDiv" align="center"><text1><?=Dolevel($ResultCard["class"]);?></text1></div>
                    <div class="styDiv2"><text2><? echo "รหัสนักเรียน";?><b></b><?=$ResultCard["IDstd"];?></text2></div>
                    <div class="styDiv2"><text2><? echo "รหัสบัตรประชาชน";?><b></b><?=$ResultCard["IDnumber"];?></text2></div>
                    <div class="styDiv2"><text2><? echo "ชื่อ-นามสกุล";?><b></b><?=$ResultCard["Prefix"];?><?=$ResultCard["fname"];?><b></b><?=$ResultCard["lname"];?></text2></div>
                    <div class="styDiv2"><text2><? echo "วัน เดือน ปีเกิด";?><b></b><?=$ResultCard["dbirth"];?><b></b><?=$ResultCard["mbirth"];?><b></b><?=$ResultCard["ybirth"];?></text2></div>
                    <div class="styDiv3" align="center"><text2><? echo "(นายสุรจิต  ศิริอิ่มสำราญ)";?></text2></div>
                    <div class="styDiv2" align="center"><text2><? echo "ผู้อำนาวยการโรงเรียนสามพรานวิทยา";?></text2></div>
                    <div class="barcode" align="center"><? $barcodeobj = new TCPDFBarcode(''.$ResultCard["IDstd"].'', 'C128'); echo $barcodeobj->getBarcodeHTML(1, 20, 'black');?></div>
                   <!-- <div class="barcode-resize" align="center"><img src="barcode/php-barcode-master/barcode.php?text=<?=$ResultCard["IDstd"];?>" /></div>-->
                </div>   
            <div class="CardtxtDate"><? echo $Cardin2; echo $Cardout2;?></div><img src="../template/card12.png" /> 
            </div><!-- end front-->
            
            <div id="back" class="card-resize"><!-- start back-->
            <div class="CardtxtBack" align="center">
               		<div class="styDiv" align="center"><text3>โรงเรียนสามพรานวิทยา</text3></div>
                    <div class="styDiv" align="center"><text4>SAMPRAN WITTHAYA SCHOOL</text4></div>
                    <div class="styDiv3"><text2>40 หมู่ 5 ตำบลยายชา อำเภอสามพราน จังหวัดนครปฐม 73110</text2></div>
                	<div class="styDiv3"><text2>โทร. 0-3422-2888  โทรสาร. 0-3432-6888</text2></div>
                    <div class="styDiv3"><text2>-------------------------------------------------------------</text2></div>
                	<div class="styDiv2"><text2>1. บัตรนี้ใช้เฉพาะผู้เป็นเจ้าของบัตรเท่านั้น</text2></div>
                    <div class="styDiv2"><text2>2. ให้พกบัตรประจำตัวนี้ตลอดเวลา</text2></div>
                    <div class="styDiv2"><text2>3. ใช้แสดงตัวตนทุกครั้งเมื่อมีผู้เรียกตรวจ</text2></div>
                    <div class="styDiv2"><text2>4. สิทธิการใช้บัตรสิ้นสุดลงเมื่อพ้นสภาพการเป็นนักเรียนของโรงเรียนสามพรานวิทยา</text2></div>
                    <div class="styDiv2"><text2>5. ผู้ใดเก็บบัตรนี้ได้ โปรดนำส่งคืนโรงเรียน</text2></div>
            </div>
            <img src="../template/back.png" />
            </div><!-- end back--> 
        </div><!-- end main--> 
    </div><!-- end containner-->
<!-- end Generate 1 Card-->
  <? } //loop while
  } // End For loop Gen Card / page ?>
</page><!-- end page-->
<?
}  // End For loop Gen page
?>
<!-- END GEN CARD-->
</body>
</html>


ผมวนลูป แสดงผลไม่ถูกครับ ว่าจะทำยังไง ให้มันพอดี เป็นหน้า ๆ ไป

แต่ถ้าใช้แค่ loop for แสดงบัตร รายชื่อเดียวแต่ซ้ำ ๆ กัน หลายหน้า ทำได้ครับ แสดงได้พอดี อย่างที่ต้องการเลย แต่พอเพิ่ม loop while เพื่อ สร้างบัตร หลายรายชื่อ ผลก็เป้นดังรูปครับ

loop for แสดง หาจำนวนหน้า แสดงผลได้ถูกต้อง จากข้อมูล 32 รายชื่อ นับได้ 7 หน้า
แต่มาเพี้ยนที่ รูป for ที่ 2 ที่ต้องการให้แสดงข้อมูลต่อหน้า เพียงแค่ 5 เท่านั้น แล้วขึ้นหน้าใหม่



Tag : PHP, MySQL, HTML/CSS









ประวัติการแก้ไข
2016-05-16 23:27:20
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-05-15 13:03:35 By : akkaneetha View : 1499 Reply : 6
 

 

No. 1



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ไม่มีใครมาช่วยตอบเลยเหรอครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-15 22:44:26 By : akkaneetha
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้การตัดหน้าเอาครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-16 10:01:08 By : mr.win
 

 

No. 3



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2016-05-16 10:01:08
รายละเอียดของการตอบ ::
ผมแทรกไว้ใน CSS อ่ะครับ ไม่ได้เหรอครับ

Code
@media print { body, page[size="A4"] { margin: 0; box-shadow: 0; page-break-after: always; }


ผมมีปัญหาตรงที่ พอแทรก loop while ที่ใช้สำหรับ แทรกข้อมูลลงไป แล้วการแสดงผลมันเพิ้ยนครับ แค่ถ้าแค่ต้องการแสดงแค่การ์ด ไม่มีข้อมูล มันทำได้ปกติครับ ทั้งจำนวนหน้า และจำนวนการ์ดต่อหน้า

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-16 10:35:58 By : akkaneetha
 


 

No. 4



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ใส่ไว้หลัง บรรทัด </page><!-- end page--> ก่อนปิด while loop แบบนี้ไม่ได้หรอครับ

Code (PHP)
</page><!-- end page-->
<div style="page-break-after: always"></div>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-16 11:38:59 By : arm8957
 


 

No. 5



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ก็ยังไม่ได้ครับ ไม่รู้ว่าเป็นเพราะ CSS ที่ใช้กำหนด หน้ารึเปล่า

แต่ตอนนี้อยากทราบอีกเรื่องครับ จากตัวโค้ดที่สร้าง บัตร จัดตำแหน่ง ด้วย CSS แล้ว Export เป็น pdf ด้วย mpdf

แล้วพวกคำสั่ง CSS ไม่ทำงานเลยครับ ตัว pdf กลายเป็น หน้า html แบบไม่รัน css เลยครับ

มันแก้ได้มั้ยครับ

css เป็นแบบ include เข้ามา แต่ลองแบบเอามาใส่ไว้ในไฟล์เดียวกันแล้วก็ยังไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-16 23:22:39 By : akkaneetha
 


 

No. 6



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : akkaneetha เมื่อวันที่ 2016-05-16 23:22:39
รายละเอียดของการตอบ ::
โดยส่วนตัวผมไม่เคยใช้ mpdf เคยใช้แต่ tcpdf มันจะสามารถแทรก CSS ได้ มี Demo ให้ดู แต่คิดว่า mpdf ก็สามารถแทรก CSS ได้เช่นกัน ลองหาข้อมูลดีๆครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-17 09:14:07 By : arm8957
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูโค้ดให้หน่อยครับ ใช้ while วนแสดงข้อมูลจากฐานข้อมูล แต่พอสั่งปริ้น แล้วไม่พอดีหน้า
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่