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 > ปัญหาจากการแบ่งหน้าเพื่อแสดงผลข้อมูลแสดงผลถูกต้องเฉพาะหน้าแรก ส่วนหน้าถัดไปไม่แสดงผลข้อมูล



 

ปัญหาจากการแบ่งหน้าเพื่อแสดงผลข้อมูลแสดงผลถูกต้องเฉพาะหน้าแรก ส่วนหน้าถัดไปไม่แสดงผลข้อมูล

 



Topic : 123557



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



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




ผมไม่เคยโพสต์กระทู้ครับ ขอรบกวนสอบถามเพื่อนสมาชิกครับ ผมเขียน PHP เพื่อให้ทำการแบ่งหน้าการแสดงผลข้อมูลหน้าละ 25 รายการ ครับ จากโค็ดที่ผมนำมาแสดงเพียงบางส่วน มันสามารถทำงานได้อย่างถูกต้องเป็นปกติดีครับ แต่ผมสงสัยว่า ในส่วนของการคิวรี่ข้อมูลเพื่อนำมาแสดงผลในบรรทัดที่ 27 หากผมเขียนโค๊ดเป็น $sql_f = "select * from subject where id_dep='$id'"; โดยค่า $id จะมีค่าเปลี่ยนไปตามค่าตัวแปรที่ส่งมาครับ เมื่อให้แสดงผลในหน้าแรกมันก็สามารถแสดงผลถูกต้องดีครับในหน้าที่ 1 อันดับที่ 1-25 แต่พอผมคลิกดูหน้าที่ 2 ระบบมันจะแจ้งว่าไม่มีข้อมูลซะงั้น ทั้ง ๆ ที่ข้อมูลยังมีอยู่ แต่หากผมทดลองเปลี่ยนหรือ Fix ค่าลงไปแทนตัวแปร เช่น $sql_f = "select * from subject where id_dep='3'"; ปรากฏว่าระบบสามารถแสดงผลข้อมูลแบ่งหน้าได้ครบถ้วนสมบูรณ์ในทุก ๆ หน้า ก็เลยสงสัยว่า ระหว่างเรา Fix ค่าลงไปในตอนที่คิวรี่ข้อมูล กับการนำตัวแปรมาใส่ ทำไมถึงทำให้การแสดงผลข้อมูลด้วยวิธีการแบ่งหน้าไม่ถูกต้องครับ เพราะการคิวรี่ข้อมูลโดยใช้ค่าตัวแปรที่ส่งมา แบบเปลี่ยนค่าได้ เช่น $sql_f = "select * from subject where id_dep='$id'"; โดยปกติก็สามารถแสดงผลได้อย่างถูกต้องทั้งหมดเหมือนกันถ้าไม่ต้องทำการแบ่งหน้าการแสดงผลข้อมูล หรือผมควรปรับแก้ตรงจุดไหนครับ
Code (PHP)
//------------------------------------------------------------
$Per_Page = 25;   // 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($rx<=$Per_Page)
{
   $rx_Pages =1;
}
else if(($rx % $Per_Page)==0)
{
   $Num_Pages =($rx/$Per_Page) ;
}
else
{
   $Num_Pages =($rx/$Per_Page)+1;
   $Num_Pages = (int)$Num_Pages;
}

//---------------------------------------------------------
$sql_f = "select * from subject where id_dep='$id'";
$result_= mysql_query($sql_f);
$rx = mysql_num_rows($result_);

$sql_f .=" order by number ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($sql_f);


echo "<table border = 1 cellpadding='1' cellspacing='0' style='border-collapse: collapse' width = 1000  bordercolor='#FFFFFF'>";
 echo "<tr height=35>";
echo "<td  colspan=8 background='img/head_bar.jpg'>";
echo "<CENTER><font class=X22>รายชื่อกิจกรรมที่เกี่ยวข้องกับ&nbsp;&nbsp;<U>$xbrandname</U></font>&nbsp;";
echo "</CENTER></td>";
echo "</tr>";

 echo "<tr height =40 bgcolor=#FFFFFF><td align=center colspan=8><font class=X22>มีข้อมูลทั้งหมด&nbsp;&nbsp;$rx&nbsp;&nbsp;รายการ</td></tr>";
echo "<tr bgcolor=#FFD553  height=40>";
echo "<td  align=center width=5%><font class=X3>ลำดับที่</td>";
echo "<td  align=center width=10%><font class=X3>รหัสกิจกรรม</td>";
echo "<td  align=center width=60><font class=X3>ชื่อกิจกรรม</td>";
echo "<td  align=center width=20% ><font class=X3>กระทรวง</td>";
echo "<td  align=center width=15%><font class=X3>กรม</td>";
echo "<td  align=center width =15%><font class=X3>กอง/สำนัก</td>";
echo "<td  align=center width =6%><font class=X3>เข้าชม</td>";

echo "</tr>";
if($rx==0) {
	echo "<tr bgcolor=#FFFFFF><td colspan=8 align=center height=50>";
	echo "<font class=X4>ไม่พบรายการใด ๆ จากการค้นหา";
	echo "</td></tr>";
}

$no = 0;

if($Page > 1)
{
  $no = ($Per_Page * $Page) - 25;
}

while($row = mysql_fetch_array($result_))
	{
       $no++;
					$a = trim($row["number"]); 
					$b = trim($row["name"]); 
					$c = trim($row["id_dep"]); 
					$d = trim($row["kom"]); 
					$e = trim($row["kong"]); 
					$f = trim($row["filename"]); 
					$g = trim($row["view"]); 

					echo "<tr valign=center bgcolor=#E6E3E3 height=20 onmouseover=over(this) onmouseout=out(this)>";
					echo "<td align=center>";
 				    echo "<a href='add_data.php?ID=$a' class=X33>$no</a>";
					echo "</td>";
					echo "<td align=center>";
 				    echo "<a href='add_data.php?ID=$a' class=X33>$a</a>";
					echo "</td>";

			         if($f == '' )
					 {
					    echo "<td align=left>";
					    echo "<a href='add_data.php?ID=$a' class=X33>&nbsp;&nbsp;$b&nbsp;&nbsp;</a>";
					     echo "</td>";
					 }
			         else if($f != '' )
					 {
					    echo "<td align=left>";
					    echo "<a href='add_data.php?ID=$a' class=X33>&nbsp;&nbsp;$b&nbsp;&nbsp;&nbsp;<IMG SRC=img/attach.png WIDTH='20' HEIGHT='15'  BORDER='0' ALT=''></a>";
					    echo "</td>";
					 }

                    // ชื่อกระทรวงมาให้ตรงกับรหัส
                    $sql_find_mini = "select * from mini where id_dep = '$c'";
                    $result_u = mysql_query($sql_find_mini);
                    while($row=mysql_fetch_array($result_u))
                    {
	                 	$x_id = trim(mysql_result($result_u,0,"id_dep"));
		                $x_name = trim(mysql_result($result_u,0,"dep_name"));
                    }
                   echo "<td align = left>";
 				   echo "<a href='add_data.php?ID=$a' class=X33>&nbsp;&nbsp;$x_name</a>";
                   echo "</td>";
				   echo "<td align=left>";
 				   echo "<a href='add_data.php?ID=$a' class=X33>&nbsp;&nbsp;$d</a>";
				   echo "</td>";
				   echo "<td align=left>";
 				   echo "<a href='add_data.php?ID=$a' class=X33>&nbsp;&nbsp;$e</a>";
				   echo "</td>";
				   echo "<td align=center><font class=X3>$g</td>";
				   echo "</tr>";
         }
echo "</table>";
echo "<table border = 0 cellpadding='1' cellspacing='0' style='border-collapse: collapse' width = 1000  bgcolor=#FF9900>";
echo "<tr height=40 bgcolor=#FFD553><td>";
echo "<font class=X3>&nbsp;&nbsp;&nbsp;&nbsp;"; 
echo "&nbsp;";
echo "&nbsp$Page&nbsp;&nbsp;";
$pages = new Paginator;
$pages->items_total = $rx;
$pages->mid_range = 10;
$pages->current_page = $Page;
$pages->default_ipp = $Per_Page;
$pages->url_next = $_SERVER["PHP_SELF"]."?QueryString=value&Page=";
$pages->paginate();
echo $pages->display_pages();
echo "</font>";
?>	
</td>
<td align=right><font class=X3></td></tr></table>




Tag : PHP, MySQL









ประวัติการแก้ไข
2016-06-25 23:52:34
2016-06-25 23:52:55
2016-06-25 23:55:16
2016-06-26 00:01:22
2016-06-26 00:05:03
2016-06-26 00:10:54
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-06-25 23:47:51 By : wirat_pj View : 828 Reply : 3
 

 

No. 1



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



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

ถ้าบอกว่าใส่ค่า 3 ลงไปแทน $id แล้วแสดงข้อมูลถูกต้อง งั้นปัญหาก็ต้องเป็นที่ $id แหละ ครับ ไม่ทราบว่าได้ ประกาศรับค่าตัวแปรไว้รึป่าว

ประมาณนี้
Code (PHP)
$id = $_REQUEST['id'];







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-26 23:58:23 By : kerb
 


 

No. 2



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



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


ขอบคุณที่ชี้แนะครับ ผมได้ทดลองทำตามที่แนะนำแล้วครับ ยังไม่ผ่านครับ ปัญหามันอยู่ที่ค่าตัวแปร $id ตามที่คุณบอกครับ เพียงแต่ผมสงสัยว่าระหว่างค่าตัวแปรที่ส่งผ่านฟอร์มมา กับหากเราทดลองเปลี่ยนเป็นแบบ Fix ทำไมการแสดงผลถึงแตกต่างกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-28 23:34:49 By : wirat_pj
 

 

No. 3



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



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


ผมรู้วิธีแก้แล้วครับ คือ...มันเหมือนกับว่า พอไปหน้า 2 แล้วค่าของ id มันไม่ตามไปด้วยทำให้เออเร่อ เราต้องใส่ให้มันตรงโค๊ดแบ่งหน้า

บนหัวสุดเอาโค๊ดนี้ไปใส่ (ปรับให้เข้ากับตัวเอง)
Code (PHP)
<?php
       ini_set('display_errors', 1);
	error_reporting(~0);

        $albumID = null;

	if(isset($_POST["albumID"]))
	{
		$albumID = $_POST["albumID"];
	}
	if(isset($_GET["albumID"]))
	{
		$albumID = $_GET["albumID"];
	}


?>


2 บรรทัดแรกไม่ต้องไปเปลี่ยน
ini_set('display_errors', 1);
error_reporting(~0);

ทีนี่โค๊ดตรงที่บอกเลขหน้า กับ ถัดไป,ย้อนกลับ ของผมมันเป็นแบบนี้
Code (PHP)
<?php
if($Prev_Page)
{
	echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< ย้อนกลับ</a> ";
}

for($i=1; $i<=$Num_Pages; $i++){
	if($i != $Page)
	{
		echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>[$i]</a> ";
	}
	else
	{
		echo "<b> [$i] </b>";
	}
}
if($Page!=$Num_Pages)
{
	echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>หน้าถัดไป>></a> ";
  }	
?>


แล้วเราก็เพิ่มโค๊ดเข้าไปเป็นแบบนี้
Code (PHP)
<?php
if($Prev_Page)
{
	echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&albumID=$albumID&galleryID=$galleryID'><< ย้อนกลับ</a> ";
}

for($i=1; $i<=$Num_Pages; $i++){
	if($i != $Page)
	{
		echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$i&albumID=$albumID&galleryID=$galleryID'>[$i]</a> ";
	}
	else
	{
		echo "<b> [$i] </b>";
	}
}
if($Page!=$Num_Pages)
{
	echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&albumID=$albumID&galleryID=$galleryID'>หน้าถัดไป>></a> ";
  }	
$Connect = null;
?>


ลองทำดู ไม่น่างงนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-15 00:18:07 By : Poonmoss
 

   

ค้นหาข้อมูล


   
 

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