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 > มีปัญหา เรื่อง Code แบ่งหน้าครับ รบกวนช่วยดูหน่อยครับ



 

มีปัญหา เรื่อง Code แบ่งหน้าครับ รบกวนช่วยดูหน่อยครับ

 



Topic : 035345



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



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




ผมไปก๊อปเอา code แบ่งหน้าจากตัวอย่างด้านล่างนี้ไปใช้ แล้วผมมีปัญหาตรงที่
url ของผมเป็นแบบนี้ index1.php?id=101113&st=1&sh=gal&by=0&page=1

ตรง page=1 ผมลองแก้เป็น page=0 หรือ page=-1 เพื่อส่งค่าที่ไม่มีจริงเข้าไป มันจะฟ้องแบบนี้ครับ

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ


และอีกปัญหาคือ ถ้าเราใส่ค่ามากกว่าจำนวนหน้าที่มันนับได้ ( สมมุตินับหน้า $total ได้ค่า page=14 )

และ url ของผมคือ index1.php?id=101113&st=1&sh=gal&by=0&page=14

ผมส่งค่าที่ไม่มีจริง ไปแทนคือ page=15
มันจะแสดง ออกมาแบบล่างนี้อ่ะครับ

« Previous 13 14 [127-126] of 125

มันจะแสดงค่า page ที่ไม่มีจริงออกมา และไม่สามารถดึงข้อมูลออกมาแสดงได้ เพราะ $_GET ค่าที่ไม่มีจริง


ที่ผมอยากได้คือ ผมอยากจะได้เงื่อนไข คือ ถ้าใส่ค่าที่ไม่มีจริงมา
เช่นถ้าใส่ page=0 หรือ page=-1 เข้ามา ก็ให้แสดงหน้าแรก คือ page=1 แทน

ถ้าใส่ page=15 ก็ให้แสดงหน้าสุดท้าย คือ page=14 แทน
ประมาณนี้อ่ะครับ รบกวนผู้รู้ช่วยแนะนำด้วยครับ



นี่ครับ ตัวแบ่งหน้า ที่ผม copy ไปใช้
Code (PHP)
<?php
#######################################################################
# $page = (isset($_GET['page']))? intval($_GET["page"]) : 0;
# $limit_end = 20;
# $limit_start = ($page-1)*$limit_end;
# $sql = "select * from table limit " . $limit_start. "," . $limit_end;
# page_navi($page, $limit_end, 4, 1000, "_self", "current_page", "other_page", $querystring);
####################################################################### 
# $page = หน้าปัจจุบัน
# $limit= จำนวน record ต่อหน้า
# $range= บวกลบจากหน้าปัจจุบัน ใส่ 4 จะได้ตัวเลขออกมา 9 
# $count= จำนวน record ทั้งหมด
# $send= ส่งตัวแปรอะไรไปด้วย
# $current_style = css สำหรับหน้าปัจจุบัน
# $other_style = css สำหรับอื่นๆ รวมถึง Prev Next First Last
# $target= อันนี้รู้ๆ กัน
#######################################################################
function page_navi($page, $limit, $range, $count, $send=NULL, $current_style="navi_on", $other_style="navi_out", $target="_self"){
	$output = "";
	$total = ceil($count/$limit);
	$navi_start = $page-$range;
	$navi_end = $page+$range;
	
	$send .= (!empty($send))? "&" : NULL;
		
	if($navi_start <= 0) $navi_start = 1;
	if($navi_end >= $total) $navi_end = $total;
	
	if($page>1){
		$navi_back = $page-1;
		if($page > 2)
		$output .= "<a href=\"?" . $send . "page=1\" target=\"" . $target . "\" class=\"" . $other_style . "\"><strong>&laquo;</strong></a> ";
		$output .= "<a href=\"?" . $send . "page=" . $navi_back . "\" target=\"" . $target . "\" class=\"" . $other_style . "\"><strong>&#8249;</strong></a> ";
	}
	for($i = $navi_start; $i <= $navi_end; $i++){
		if($i == $page)
		$output .= "<a href=\"?" . $send . "page=" . $i . "\" target=\"" . $target . "\" class=\"" . $current_style . "\"><strong><font color=\"" . $other_style . "\">$i</font></strong></a> ";
		else
		$output .= "<a href=\"?" . $send . "page=" . $i . "\" target=\"" . $target . "\" class=\"" . $other_style . "\">$i</a> ";
	}
	if($page < $total){
		$navi_next = $page+1;
		$output .= "<a href=\"?" . $send . "page=" . $navi_next . "\" target=\"" . $target . "\" class=\"" . $other_style . "\"><strong>&#8250;</strong></a> ";
		if(($page+1) < $total)
		$output .= "<a href=\"?" . $send . "page=" . $total . "\" target=\"" . $target . "\" class=\"" . $other_style . "\"><strong>&raquo;</strong></a>";
	}
	if($navi_start>$navi_end) 
		$output .= "<a href=\"?" . $send . "page=" . $page . "\" target=\"" . $target . "\" class=\"" . $other_style . "\"><strong>$page</strong></a> ";
	return $output;
}
?>



Code (PHP)
<?php
$page = (isset($_GET['page']))? intval($_GET['page']) : 1;
$limit_end = 2;
$limit_start = ($page-1)*$limit_end;

$send = "";
if(isset($_GET["id"]) and $_GET["id"] != ""){
    $send = "id=" . $_GET["id"];
    $condition= " WHERE category_id = '" . $_GET["id"] . "'";
} 

$sql = "SELECT * FROM product" . $condition;
$query_id = mysql_query($sql . " LIMIT " . $limit_start. "," . $limit_end, $connection_id);
$count = mysql_num_rows($query_id);
$total = mysql_num_rows(mysql_query($sql, $connection_id));
if($total > 0){
	while($rows = mysql_fetch_assoc($query_id)){
		echo $rows["product_name"]."<br>";
	}
echo "\n<div style=\"float:left;\">Page : " . page_navi($page, $limit_end, 4, $total, $send) . " </div><div style=\"float:right;\">[" . ($limit_start+1) . "-" . ($limit_start+$count) . "] of <strong>" . $total . "</strong></div>";
}
?>





Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-12-05 22:15:57 By : basic111 View : 912 Reply : 3
 

 

No. 1



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

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

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

คือผมไม่มีเวลามากนะ โทษทีคับ

if( ! $count) ไม่มีหน้า ให้แก้ sql ไปที่หน้า 1 ไม่ก็เอา error แสดง






Date : 2009-12-05 22:27:20 By : pjgunner
 


 

No. 2



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

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

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


โคดนี้ต้องตามพี่ PlaKrim มาช่วยดู .... อ้ายอั๋นๆอยู่ไสๆ
Date : 2009-12-06 00:46:34 By : panyapol
 

 

No. 3



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

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

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


Code (PHP)
if($total > 0){
	if($count > 0){
		while($rows = mysql_fetch_assoc($query_id)){
			echo $rows["product_name"]."<br>";
		}
		echo "\n<div style=\"float:left;\">Page : " . page_navi($page, $limit_end, 4, $total, $send) . " </div><div style=\"float:right;\">[" . ($limit_start+1) . "-" . ($limit_start+$count) . "] of <strong>" . $total . "</strong></div>";
	}else{
		echo "ไม่พบข้อมูล";
	}
}else{
	echo "ไม่พบข้อมูล";
}


แนะนำให้ฟ้องเออเร่อดีกว่าครับ

ถ้าจะทำจริงๆ มันหลายขั้นตอนเปลืองเปล่าๆ
Date : 2009-12-06 13:08:25 By : plakrim
 

   

ค้นหาข้อมูล


   
 

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