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 > การแบ่งหน้าโดยให้แสดงผลแต่ละเดือนไม่เกิน 5 บรรทัด เมื่อเลือกเดือนที่ต้องการหน้าจำจะแสดงรายละเอียดถูกต้องในหน้าที่หนึ่งเท่านั้น



 

การแบ่งหน้าโดยให้แสดงผลแต่ละเดือนไม่เกิน 5 บรรทัด เมื่อเลือกเดือนที่ต้องการหน้าจำจะแสดงรายละเอียดถูกต้องในหน้าที่หนึ่งเท่านั้น

 



Topic : 047786

Guest




code ที่เขียนไว้เป็นแบบนี้ครับ... ช่วยดูให้หน่อยนะครับต้องการแบ่งการแสดงผลหน้าละ 5 บรรทัด สมมติว่าเลือกเดือนกุมภาพันธ์ซึ่งมี13 บรรทัด ดังนั้นโปรแกรมจะแสดงผล 3 หน้า โดยข้อมูลที่ปรากฎขึ้นมาในหน้าแรกมีรายชื่อเดือนที่เลือก และยอดยกมาถูกต้อง แต่พอไปติ๊กเลือกไปหน้าที่สอง ปรากฎว่ารายชื่อเดือนไม่มี และยอดยกมาก็ไม่มี ผมไม่รู้จะแก้ไขอย่างไร ช่วยให้ความกระจ่างด้วยครับ ขอบคุณมากครับ

<meta http-equiv="Content-Type" content="text/html; charset=windows-874">

<html>

<?php require_once('Connections/cnqmss.php'); ?>

<?
//กำหนดค่าตัวแปรให้แต่ละเดือน
$jan = "มกราคม";
$feb = "กุมภาพันธ์";
$mar = "มีนาคม";
$apr = "เมษายน";
$may = "พฤษภาคม";
$jun = "มิถุนายน";
$jul = "กรกฎาคม";
$aug = "สิงหาคม";
$sep = "กันยายน";
$oct = "ตุลาคม";
$nov = "พฤศจิกายน";
$dec = "ธันวาคม";
?>

<form action="" method="post">
<select name="mount" id="mount" >

<option value="">ระบุเดือน</option>
<option value="มกราคม">มกราคม</option>
<option value="กุมภาพันธ์">กุมภาพันธ์</option>
<option value="มีนาคม">มีนาคม</option>
<option value="เมษายน">เมษายน</option>
<option value="พฤษภาคม">พฤษภาคม</option>
<option value="มิถุนายน" >มิถุนายน</option>
</select><input type="submit">
</form>

<?
//if($m==""){$m="1";} //ถ้าไม่มีการเลือกให้เป็นเดือน ม.ค.
switch ($mount)
{
case $jan:
$cym="201001"; //เดือนที่เรียกดู
$pym="200912"; //เดือนที่แล้ว
break;
case $feb:
$cym="201002"; //เดือนที่เรียกดู
$pym="201001"; //เดือนที่แล้ว
break;
case $mar:
$cym="201003"; //เดือนที่เรียกดู
$pym="201002"; //เดือนที่แล้ว
break;
case $apr:
$cym="201004"; //เดือนที่เรียกดู
$pym="201003"; //เดือนที่แล้ว
break;
case $may:
$cym="201005"; //เดือนที่เรียกดู
$pym="201004"; //เดือนที่แล้ว
break;
case $jun:
$cym="201006"; //เดือนที่เรียกดู
$pym="201005"; //เดือนที่แล้ว
break;

}

mysql_select_db($database_cnqmss, $cnqmss);

//เอารายการที่มีการเบิกน้ำมันที่ผ่านมาจนถึงเดือนที่เรียกดูมาแสดงทั้งหมด เงื่อนไขคือ where date_oil <= เดือนที่เรียกดู
$sql1="SELECT gas_id,namegas,unit, sum(num_in)as n_in, sum(num_out)as n_out , sum(stock)as n_stock
FROM mount
WHERE date_format(date_oil,'%Y%m')<='$cym' group by gas_id ";

//echo $sql1;
$rso=mysql_query($sql1,$cnqmss)or die(mysql_error());
//echo mysql_num_rows($rso);
//$row=($rso); //จำนวนแถวที่เปิดเรคอร์ดได้
$Num_Rows = mysql_num_rows($rso);
//echo $Num_Rows . " " ;
// echo "$cym = " . $cym . " $pym = " . $pym;
$Per_Page =5; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$sql1 .=" order by gas_id ASC LIMIT $Page_Start , $Per_Page";
$rso = mysql_query($sql1);

?>
<center>รายการประจำเดือน : <?=$mount?></center>
<table border="1" width="100%">
<tr bgcolor="#999999">
<td width="4%" align="center">ลำดับ</td>
<td width="41%" align="center">รายการ</td>
<td width="10%" align="center">หน่วยนับ</td>
<td width="10%" align="center">ยอดยกมา</td>
<td width="9%" align="center">ยอดรับ</td>
<td width="9%" align="center">ยอดรวม</td>
<td width="9%" align="center">ยอดจ่าย</td>
<td width="8%" align="center">คงเหลือ</td>
</tr>
<?
$i=0;
while($rs=mysql_fetch_array($rso))
{
$i=$i+1;
//ของเดือนที่เรียกดูปัจจุบัน
$gas_id=$rs["gas_id"];
$gname=$rs["namegas"];
$unit=$rs["unit"];
$sumin=$rs["n_in"];
$sumout=$rs["n_out"];
$sumstock=$rs["n_stock"];

//ระหว่างวนลูปให้เอาหมายเลขน้ำมันไปเช็คดูในฐานข้อมูลตั้งแต่อดีตจนถึงเดือนที่แล้ว (เดือนก่อนเดือนที่เรียกดู) มียอดคงเหลือที่จะยกมาเท่าไหร่
//เงื่อนไขคือ where date_oil <=เดือนก่อนหน้า
$sql2="SELECT gas_id,sum(stock)as n_stock
FROM mount
WHERE date_format(date_oil,'%Y%m')<='$pym' and gas_id='$gas_id' group by gas_id";
$rspo=mysql_query($sql2,$cnqmss);
$rsp=mysql_fetch_array($rspo);
$presum=$rsp["n_stock"]; //ยอดยกมา

//นำยอดคงเหลือมาบวกกับยอดรับของเดือนปัจจุบัน
$sumtotal=$sumin+$presum; //ยอดรวม
//echo "<tr><td colspan=181 align='left'>".$sql2."</td></tr>" //ลองปรินท์ sql2 ออกมาดู
?>
<tr>
<td><?=$i?></td>
<td><?=$gas_id?><?=$gname?></td>
<td><?=$unit?></td>
<td align="right"><?=$presum?></td>
<td align="right"><?=$sumin?></td>
<td align="right"><?=$sumtotal?></td>
<td align="right"><?=$sumout?></td>
<td align="right"><?=$sumstock?></td>
</tr>
<?
}
?>
</table>
<center>
<br>

จำนวนทั้งสิ้น <?= $Num_Rows;?> บรรทัด : จาก <?=$Num_Pages;?> หน้า :

<?
if($Prev_Page)
{
echo "<a href=\"$PHP_SELF?Page=$Prev_Page&&cym=$cym\"><< - ย้อนกลับ </a>";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href=\"$PHP_SELF?Page=$i&&cym=$cym\">$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}

if($Page!=$Num_Pages)
{
echo "<a href=\"$PHP_SELF?Page=$Next_Page&&cym=$cym\"> หน้าถัดไป ->></a>";
}
mysql_close($cnqmss);// ปิดฐานข้อมูล
?>

</body>

</html>



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-08-27 21:50:52 By : ตู่ View : 818 Reply : 1
 

 

No. 1



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

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

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

จะต้องกลับไปดูที่ Query ครับ ลอง echo $sql1 ออกมา แล้วนำไปทดสอบบน phpMyAdmin พร้อมๆ กับการปรับ Query ให้ถูกต้องแล้วเอามาใส่ใหม่ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-29 08:37:54 By : webmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การแบ่งหน้าโดยให้แสดงผลแต่ละเดือนไม่เกิน 5 บรรทัด เมื่อเลือกเดือนที่ต้องการหน้าจำจะแสดงรายละเอียดถูกต้องในหน้าที่หนึ่งเท่านั้น
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่