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,037

HOME > PHP > PHP Forum > ใส่โค้ดเพจแบ่งหน้า แล้วทำให้เลขที่แสดงจำนวนข้อมันผิดเพี้ยน สมมติว่าหน้าที่ 1 มี 10 ข้อ จะแสดงหมายเลขข้อ 1-10 ปกติ แต่พอกดไปหน้าที่ 2 แทนที่จะขึ้นเป็นข้อ 11 ดันเริ่มนับ 1 ใหม่รบกวนช่วยชี้แนะทีนะค่ะ



 

ใส่โค้ดเพจแบ่งหน้า แล้วทำให้เลขที่แสดงจำนวนข้อมันผิดเพี้ยน สมมติว่าหน้าที่ 1 มี 10 ข้อ จะแสดงหมายเลขข้อ 1-10 ปกติ แต่พอกดไปหน้าที่ 2 แทนที่จะขึ้นเป็นข้อ 11 ดันเริ่มนับ 1 ใหม่รบกวนช่วยชี้แนะทีนะค่ะ

 



Topic : 055166



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



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




ตัวอย่างรัน หน้า 1
แบ่งเพจ1
เมื่อกดหน้า 2

แบ่งเพจ2

อันนี้โค้ดเพจที่ต้องการแบ่งหน้านะค่ะ
<?php include('config_student.php');
include("../inc/paging.inc.php");
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

//อ่านลำดับเพจปัจจุบันจาก query string หากไม่มีแสดงว่าเป็นเพจแรก
$current_page = 1;
if(isset($_GET['page'])) {
$current_page = $_GET['page'];
}

//แสดง 10 แถวต่อหน้า แล้วหาแถวเริ่มต้นของเพจนั้น โดยเรียกฟังก์ชันที่อยู่ใน include file
$rows_per_page = 2;
$start_row = paging_start_row($current_page, $rows_per_page);


$query_ShowEva = "SELECT SQL_CALC_FOUND_ROWS project_name,evaluation_detail.project_id FROM project,evaluation_detail WHERE student_id = ".$_SESSION['student_id']." AND evaluation_detail.project_id = project.project_id AND evaluation_detail.status_evaluation = 'NOT' LIMIT $start_row, $rows_per_page ";
$ShowEva = mysql_query($query_ShowEva, $connproject) or die(mysql_error());
$row_ShowEva = mysql_fetch_assoc($ShowEva);
$totalRows_ShowEva = mysql_num_rows($ShowEva);

//หาจำนวนแถวผลลัพธ์ทั้งหมดที่ตรงตามเงื่อนไข
$found_rows = mysql_query("SELECT FOUND_ROWS();");
$total_rows = mysql_result($found_rows, 0, 0);

//จำนวนหน้าทั้งหมด โดยเรียกฟังก์ชันที่อยู่ใน include file
$total_pages = paging_total_pages($total_rows, $rows_per_page);

?>


<?php $i=1; ?>
<div align="center">
<?php if ($totalRows_ShowEva > 0) { // Show if recordset not empty ?>
<table width="80%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="65"><div align="center">ลำดับที่</div></td>
<td width="418"><div align="center">รายการแบบประเมิน</div></td>
<td width="100"><div align="center">ทำรายการ</div></td>
</tr>
<?php do { ?>
<tr>
<td align="center"><?php echo ($i++); ?></td>
<td><?php echo $row_ShowEva['project_name']; ?></td>
<td align="center"><a href="make_eva.php?project_id=<?php echo $row_ShowEva['project_id']; ?>">ทำแบบประเมิน</a></td>
</tr>
<?php } while ($row_ShowEva = mysql_fetch_assoc($ShowEva)); ?>
</table>
<br />
<?php
//ส่วนการแสดงหมายเลขเพจ
echo "<center>หน้า: $current_page / $total_pages<center><br />";

$page_range = 5;
$qry_string = ""; //ในที่นี้ไม่มี query string

//สร้างลิงค์การเชื่อมโยงระหว่างเพจ โดยเรียกฟังก์ชันที่อยู่ใน include file
$page_str = paging_pagenum($current_page, $total_pages, $page_range, $qry_string);

//แสดงลิงค์ที่ได้รับมา
echo "<center>$page_str<center>"; 
?>
<?php }
// Show if recordset not empty ?>
</div>


และอันนี้ไฟล์ที่ include เข้ามา
paging.inc.php

<?php

function paging_start_row($current_page, $rows_per_page) {

return ($current_page - 1) * $rows_per_page;

}

function paging_stop_row($start_row, $rows_per_page, $total_rows) {

return (($start_row + $rows_per_page) < $total_rows) ? ($start_row + $rows_per_page) : $total_rows;

}

function paging_total_pages($total_rows, $rows_per_page) {

return ceil($total_rows / $rows_per_page);

}

function paging_pagenum($current_page, $total_pages, $page_range, $query_string) {

$page_start = $current_page - $page_range;
$page_end = $current_page + $page_range;

if($page_start < 1) {
$page_end += 1 - $page_start;
$page_start = 1;
}

if($page_end > $total_pages) {
$diff = $page_end - $total_pages;
$page_start -= $diff;
if($page_start < 1) {
$page_start = 1;
}

$page_end = $total_pages;
}

$url = $_SERVER['PHP_SELF'] . "?" . $query_string;

$result = "";

if($current_page > 1) {
$page = $current_page - 1;
$result .= "&nbsp;";
$result .= "<a href=\"$url&page=$page\">Previous</a>";
}

if($page_start > 1) {
$page = $page_start - 1;
$result .= "&nbsp;";
$result .= "<a href=\"$url&page=$page\">...</a>";
}

for($i = $page_start; $i <= $page_end; $i++) {
$result .= "&nbsp;";
if($i == $current_page) {
$result .= $i;
}
else {
$result .= "<a href=\"$url&page=$i\">$i</a>";
}
$result .= "&nbsp;";
}

if($page_end < $total_pages) {
$page = $page_end + 1;
$result .= "&nbsp;";
$result .= "<a href=\"$url&page=$page\">...</a>";
}

if($current_page < $total_pages) {
$page = $current_page + 1;
$result .= "&nbsp;";
$result .= "<a href=\"$url&page=$page\">Next</a>";
}

if($result == "") {
return "1";
}
else {
return $result;
}
}

?>

มีวิธีเขียนโค้ดให้มันจำค่า i ที่แสดงจำนวนเลขข้อไหมค่ะ เพราะอยากให้มันเรียงตามกันไปจะได้รู้ว่ามีจำนวนกี่ข้อ ไม่อยากให้เมื่อเปลี่ยนหน้าแล้วเริ่มนับใหม่ ขอบคุณนะค่ะ



Tag : PHP, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-01-27 12:53:45 By : nuie View : 2137 Reply : 2
 

 

No. 1



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



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


ลองเอา code นี้ไปแทนตรง <?php $i=1; ?>

Code (PHP)
<?php
if ($current_page == 1){
	$i=1;
}
else
{
	$i=$current_page * $rows_per_page;
}
?>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-27 15:01:01 By : sataru
 


 

No. 2



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

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

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

<?
$i = 1;
while($objResult = mysql_fetch_array($objQuery))
{
?>
  <tr>
	<td><div align="center"><?=$i;?></div></td>
	.
	.
	.
	.
<?
$i++;
}
?>


Go to : PHP MySQL Display Row No and Line Number แสดงเลขหน้ากำกับแถว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-26 13:26:09 By : webmaster
 

   

ค้นหาข้อมูล


   
 

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