|
|
|
ขอความช่วยเหลือเรื่องการแบ่งหน้าด้วยครับ ผมลองกระทู้เก่าๆ หลายวิธีแล้ว ยังไม่ได้เลยครับ |
|
|
|
|
|
|
|
ลองเอาอันนี้ไปใช้ครับ
http://www.okvee.net/articles/%E0%B9%81%E0%B8%9A%E0%B9%88%E0%B8%87%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2%E0%B9%81%E0%B8%AA%E0%B8%94%E0%B8%87%E0%B8%9C%E0%B8%A5%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-pagination-class
|
|
|
|
|
Date :
2012-11-21 00:45:45 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หาใน google ครับ คีย์ไปว่า "แบ่งหน้าการแสดงข้อมูล" เพียบเลย ดู code ข้างบนแล้วยาวจัง
|
|
|
|
|
Date :
2012-11-21 09:45:54 |
By :
vissarud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หาคำตอบได้หรือยังครับ?
|
|
|
|
|
Date :
2012-11-21 10:03:13 |
By :
ALTELMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมทำตามวิธีของ mr.v ได้แล้วครับ แต่เวลาคลิกไปที่หน้าอื่นระบบจะดึงข้อมูลทั้งหมดมาโชว์ครับ โดยไม่ได้ดึงตามที่เราค้นหาครั้งแรกครับ
รบกวนพี่ๆ ช่วยแก้ไขให้ด้วยนะครับ
CODE ตามที่ mr.v แนะนำครับ
<Code (PHP)
?php
/**
* @author mr.v
* @website http://okvee.
*/
// กำหนดค่า
$db_host = "localhost";
$dbname = "parttime";
$db_username = "root";
$db_password = "root";
$main_table = "parttime";
//
$act = (isset($_GET['act']) ? trim($_GET['act']) : '');
// connect to db
$link = mysql_connect($db_host, $db_username, $db_password);
if ( ! $link ) {die("could not connect to database");}
// selected db แล้ว ไม่ต้องมี select db, db query อีก.
$db_selected = mysql_select_db($dbname);// เราจะใช้วิธีปัจจุบัน จะไม่ใช่การ db query
mysql_query("SET character_set_results=utf8");// ใส่เพื่อแสดงภาษาไทยถูกต้อง
mysql_query("SET character_set_client=utf8");// ใส่เพื่อแสดงภาษาไทยถูกต้อง
mysql_query("SET character_set_connection=utf8");// ใส่เพื่อแสดงภาษาไทยถูกต้อง
require(dirname(__FILE__)."/pagination/pagination.php");// ทำการ include/require ด้วย เพื่อเรียกใช้งาน
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>ผลการค้นหา</title>
<style type="text/css">
<!--
.style2 {font-family: Arial, Helvetica, sans-serif}
.style3 {font-size: small}
-->
</style>
<link href="jquery-ui-1.8.23.custom/css/le-frog/jquery-ui-1.8.23.custom.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style4 {font-size: small; font-family: Arial, Helvetica, sans-serif; }
a:active {
color: #FF0000;
}
a:hover {
color: #000066;
}
-->
</style>
</head>
<meta charset="utf-8">
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#FF0000">
<th height="41" colspan="5" scope="col"><span class="style2">Part time List </span></th>
</tr>
<tr>
<td width="9%" class="style2"><div align="center"></div></td>
<td width="61%" class="style2"> </td>
<td width="10%"> </td>
<td width="10%"> </td>
<td width="10%"> </td>
</tr>
</table>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr align="center" bordercolor="#CCCCCC" bgcolor="#FF0000">
<td width="48" height="50">คำนำ</td>
<td width="95" height="50"><div align="center" class="style2">ชื่อ</div></td>
<td width="109" height="50"><div align="center" class="style2">นามสกล</div></td>
<td width="60" height="50"><div align="center" class="style2">อายุ</div></td>
<td width="108" height="50"><div align="center" class="style2">Zone</div></td>
<td width="97" height="50"><div align="center" class="style2">Location 1 </div></td>
<td width="121" height="50"><div align="center" class="style2">Location 2 </div></td>
<td width="121" height="50"><div align="center" class="style2">Location 3 </div></td>
<td width="107" height="50"><div align="center">หลังเลิกเรียน</div></td>
<td width="89" height="50"><div align="center"><span class="style2">เสาร์-อาทิตย์</span></div></td>
<td width="83" height="50">ปิดเทอม</td>
<td width="99" height="50">ชั่วโมงสะสม</td>
<td width="80" height="50"><div align="center"><span class="style2">โบนัส</span></div></td>
</tr>
<?php
$sql = "SELECT * from $main_table WHERE 1 ";
if($_POST["radiozone"] != "")
{
$sql .= " AND zone = '".$_POST["radiozone"]."' ";
}
if($_POST["radiogender"] != "")
{
$sql .= " AND gender = '".$_POST["radiogender"]."' ";
}
if($_POST["name"] != "")
{
$sql .= " AND name = '".$_POST["name"]."' ";
}
if($_POST["surname"] != "")
{
$sql .= " AND surname = '".$_POST["surname"]."' ";
}
if($_POST["txtlocation"] != "")
{
$sql .= " AND (location1 = '".$_POST["txtlocation"]."' OR location2 = '".$_POST["txtlocation"]."' OR location3 = '".$_POST["txtlocation"]."')";
}
if($_POST["radiotime"] != "")
{
$sql .= " AND (time1 = '".$_POST["radiotime"]."' OR time2 = '".$_POST["radiotime"]."' OR time3 = '".$_POST["radiotime"]."')";
}
if($_POST["university"] != "")
{
$sql .= " AND university = '".$_POST["university"]."' ";
}
if($_POST["education"] != "")
{
$sql .= " AND education = '".$_POST["education"]."' ";
}
//if($_POST["hour"] != "")
//{
//$sql .= " AND hour = '".$_POST["hour"]."' ";
//}
if($_POST["age"] != "")
{
if($_POST["age"] == '1')
{
$sql .= "AND age BETWEEN '15' and '25'";
}
elseif($_POST["age"] == '2')
{
$sql .= "AND age BETWEEN '20' and '30'";
}
elseif($_POST["age"] == '3')
{
$sql .= "AND age BETWEEN '25' and '35'";
}
elseif($_POST["age"] == '4')
{
$sql .= "AND age BETWEEN '30' and '40'";
}
}
if($_POST["hour"] != "")
{
if($_POST["hour"] == '1')
{
$sql .= "AND hour > 50";
}
elseif($_POST["hour"] == '2')
{
$sql .= "AND hour > 100";
}
elseif($_POST["hour"] == '3')
{
$sql .= "AND hour > 200";
}
elseif($_POST["hour"] == '4')
{
$sql .= "AND hour > 300";
}
elseif($_POST["hour"] == '5')
{
$sql .= "AND hour > 400";
}
elseif($_POST["hour"] == '6')
{
$sql .= "AND hour > 500";
}
}
//$pt = mysql_query($sql, $parttime) or die(mysql_error());
//$row_pt = mysql_fetch_assoc($pt);
//$totalRows_pt = mysql_num_rows($pt);
$result = mysql_query($sql);
$total = mysql_num_rows($result);// นับจำนวนทั้งหมดในฐานข้อมูลตามเงื่อนไข sql ข้างบน
##############################
// กำหนดค่า config ให้กับ pagination class
$config['base_url'] = "http://localhost/parttime/list.php?order=";
$config['total_rows'] = $total;// ค่าที่นับได้"ทั้งหมด"จาก sql ด้านบน
$config['per_page'] = 25;
$pagination = new pagination($config);
$start_item = (!isset($_GET['per_page']) ? "0" : intval($_GET['per_page']));
##############################
$sql .= " limit $start_item, " . $config['per_page'];
$result = mysql_query($sql);
if ( mysql_num_rows($result) > 0 ) {
while ( $row = mysql_fetch_object($result) ) {
?>
<tr align="center" bordercolor="#CCCCCC" bgcolor="#FFFFFF" class="style3">
<td height="20"><div align="left"><span class="style4"><?php echo $row->title; ?></span></div></td>
<td height="20"><div align="left"><span class="style3 style2"><a href="detail.php?id=<?php echo $row->id; ?>"><?php echo $row->name; ?></div></td>
<td height="20"><div align="left"><span class="style3 style2"><?php echo $row->surname; ?></span></div></td>
<td height="20"><span class="style3 style2"><?php echo $row->age; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->zone; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->location1; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->location2; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->location3; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->time1; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->time2; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->time3; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->hour; ?></span></td>
<td height="20"><span class="style3 style2"><?php echo $row->bonus; ?></span></td>
</tr>
<div align="center">
<?php
}
} else {
?>
<tr>
<td colspan="2">ไม่มีข้อมูล</td>
</tr>
<?php
}
mysql_free_result($result);
?>
</table>
<div align="center">จำนวนที่พบ <?php echo $total ?> รายการ <?php echo $pagination->create_links(); ?>
</div>
<div align="center"></div>
<p> </p>
</body>
</html>
|
|
|
|
|
Date :
2012-11-21 11:21:55 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เวลาไปหน้าอื่น แสดงข้อมูลทั้งหมดหมายถึง ไม่ได้แสดง 25 แถวเหือนหน้าแรกหรือเปล่าครับ?
|
|
|
|
|
Date :
2012-11-21 11:26:16 |
By :
ALTELMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปล่าครับ ผมขออธิบายเพิ่มแบบนี้ครับ ผมค้นหาข้อมูลจาก gender "ชาย" เมื่อค้นเสร็จที่หน้าแรก โชว์ 25 บรรทัด และบอกจำนวนที่พบทั้งหมด 725 รายการ
แต่พอเราคลิกที่หน้า 2 .... ข้อมูลโชว์ 25 บรรทัดเช่นกัน แต่เงื่อนไขไม่ได้อยู่ที่ "ชาย" แล้ว โดยจะนำรายชื่อผู้หญิงมาด้วย และที่ $total จะเป็น จำนวนที่พบ 5,000 รายการ (ซึ่งเป็นรายการทั้งหมดที่มีอยู่ใน db ครับ)
|
|
|
|
|
Date :
2012-11-21 11:37:27 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค่า POST เมื่อเปลี่ยนหน้า ค่ามันจะหายครับ
คุณลอง echo $_POST["radiogender"]; เพื่อดูค่าเมื่อค้นหาครั้งแรก
แล้วลองกดเปลี่ยนหน้าดูครับ ว่าค่ามันหายไปไหม
|
|
|
|
|
Date :
2012-11-21 11:48:26 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วครับ ค่ามันหายไปจริงด้วยครับ แล้วจะแก้ยังไงดีครับ
|
|
|
|
|
Date :
2012-11-21 11:53:05 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สร้าง hidden สักตัวเอาชื่อเดียวกันเลย
<input type="hidden" name="radiogender" value="<?=(isset($_POST["radiogender"]))?$_POST["radiogender"]:"";?>" />
เอาไว้ภายใต้แท็ก formล่ะครับ
|
|
|
|
|
Date :
2012-11-21 13:33:50 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองส่งข้อความถามกลับไปที่ mr.V ดูซิครับ
|
|
|
|
|
Date :
2012-11-21 14:27:41 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เข้าใจว่าส่งค่าต่างๆเป็น method get ถ้าอย่างนั้นตอนที่ config ให้กำหนด $config['base_url'] ให้ถูกต้องส่งค่า $_GET ลงไปให้ครบก็น่าจะได้เองครับ
ตัวอย่างเช่น
$config['base_url'] = 'http://domain.tld/page.php?param1=val1¶m2=val2¶m3=val3'; อะไรแบบนี้...
|
ประวัติการแก้ไข 2012-11-21 21:22:11
|
|
|
|
Date :
2012-11-21 21:21:41 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ MR.V มากครับ ผมจะลองดูนะครับ
|
|
|
|
|
Date :
2012-11-22 12:52:59 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สำเร็จแล้วครับ ขอบคุณทุกท่านอีกครั้งครับ
|
|
|
|
|
Date :
2012-11-23 16:11:54 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|