|
|
|
สอบถามเรื่องการทำ list menu เมื่อกดเลือก list แล้ว จะแสดงข้อมูลตามแผนกครับ |
|
|
|
|
|
|
|
เหมือนบทความนี้ครับ
PHP MySQL Search Record Paging/Pagination
|
|
|
|
|
Date :
2015-09-08 21:15:53 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองวิธีนี้ไป เป็นแบบนี้อ่าครับ
ค้นหาข้อมูลได้
แต่พอเวลาไม่ได้พิมค้นหาไม่แสดงข้อมูลทั้งหมดด้วย
รบกวนหน่อยนะครับ ขอบคุณครับ ^^
|
|
|
|
|
Date :
2015-09-09 08:46:50 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอดูตรง Query หน่อยครับ หรือไม่ echo ค่ามาให้ดูหน่อยครับ
|
|
|
|
|
Date :
2015-09-10 06:12:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มเติมการใช้คำสั่ง SQL_CALC_FOUND_ROWS ต้องใช้คู่กับ FOUND_ROWS()
โค๊ดตัวอย่างการใช้งาน
Code (PHP)
$db=new mysqli('localhost', 'test', 'test', 'test');
$sql = "SELECT SQL_CALC_FOUND_ROWS *
FROM tb_withdraw
LIMIT 0, 3";
$data = $db->query($sql ) or die("error=$sql");
$rs=$db->query('select FOUND_ROWS()');
$ro=$rs->fetch_row();
echo 'จำนวนบันทัดจาก data = ', $data->num_rows, '<br>จำนวนบันทัดทั้งหมด=', $ro[0];
|
|
|
|
|
Date :
2015-09-10 06:46:28 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตารางข้อมูลเยอะขนาดนี้ ลองศึกษา http://datatables.net/ ดูครับ
เวลาจะหาอะไรก็ง่าย สวยงามน่าใช้
|
|
|
|
|
Date :
2015-09-10 14:12:19 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะครับ ตอนนี้สามารถค้นหาข้อมูลได้แล้ว
แต่ยังติดอยู่อีกนิดหน่อย คือเมื่อค้นหาข้อมูลเจอแล้ว เลขหน้ามันขึ้นเหมือนเดิม พอกดหน้าเอื่่นก็เด้งเป็นโชว์ข้อมูลทั้งหมด
อยากให้จำนวนเลขหน้าแสดงตามหลักความจริง ตามจำนวนของข้อมูลที่แสดงอะครับ
|
|
|
|
|
Date :
2015-09-12 10:16:27 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นี่เป็นโค้ดที่เพิ่มเติมมา ขอบคุณครับ
Code (PHP)
<?php require_once('connect.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ข้อมูลเครื่องคอมพิวเตอร์</title>
<style type="text/css">
<!--
.style1 {color: #0000FF}
.style2 {color: #FF0000}
-->
</style>
</head>
<body>
<p align="center" class="style7"><b>แสดงข้อมูลเครื่องคอมพิวเตอร์</b></p>
</br>
<form id="form1" name="form1" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>" >
<a href="home.php" class="style1"><b>หน้าแรก</b></a> <a> </a>
<tr>
<th>แผนก :</th>
<td>
<select name="depart_name" id="depart_name">
<option value="0"><-- ทั้งหมด --></option>
<?php
$sql2 ="SELECT * FROM department";
$query2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($query2))
{
?>
<option value="<?php echo $row2["depart_name"];?>"
<?php if($_POST["depart_name"]=="depart_name"){echo 'selected="selected"';}?>>
<?php echo $row2["depart_name"];?></option>
<?php
}
?>
</select>
<th>Keyword :</th>
<td>
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></td>
</tr>
<a> </a><a href="insert.php" class="style1"><b>เพิ่มข้อมูล</b></a>
</form>
</br>
<table width="150%" border="1" bordercolor="#000000" cellspacing="0" cellpadding="5">
<tr>
<th colspan="12" bgcolor="#CCFFCC" scope="col"><div align="center" class="style10"><span class="style13"><span class="style16"></span>Computer</span></div></th>
<th colspan="6" bgcolor="#CCFFFF" scope="col"><div align="center" class="style10"><span class="style13">Monitor</span></div></th>
</tr>
<tr align="center">
<th width="3%" bgcolor="#FF0000" scope="col"><span class="style8">รหัส</span></th>
<th width="7%" bgcolor="#FFE9D2" scope="col"><strong>แผนก</strong></th>
<th width="5%" bgcolor="#FFE9D2" scope="col"><strong>ผู้รับผิดชอบ</strong></th>
<th width="5%" bgcolor="#FFE9D2" scope="col"><strong>ชื่อเครื่อง</strong></th>
<th width="6%" bgcolor="#FFE9D2" scope="col">IP Address</th>
<th width="5%" bgcolor="#FFE9D2" scope="col">Work Group</th>
<th width="5%" bgcolor="#FFE9D2" scope="col">วันที่ซื้อ</th>
<th width="9%" bgcolor="#FFE9D2" scope="col">Chip CPU</th>
<th width="9%" bgcolor="#FFE9D2" scope="col">Mainbord</th>
<th width="5%" bgcolor="#FFE9D2" scope="col">RAM</th>
<th width="9%" bgcolor="#FFE9D2" scope="col">VGA Card</th>
<th width="4%" bgcolor="#FFE9D2" scope="col">Harddisk</th>
<th width="4%" bgcolor="#CCCCFF" scope="col">ชนิด/ขนาด</th>
<th width="4%" bgcolor="#CCCCFF" scope="col">ยี่ห้อ/รุ่น</th>
<th width="5%" bgcolor="#CCCCFF" scope="col">วันที่ซื้อ</th>
<th width="5%" bgcolor="#CCCCFF" scope="col">Monitor2</th>
<th width="2%" bgcolor="#CCCCFF" scope="col">แก้ไข</th>
<th width="2%" bgcolor="#CCCCFF" scope="col">ลบ</th>
</tr>
<?php
$per_page = 15;
$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 =8;
}
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;
}
$sql = "SELECT * FROM com LEFT JOIN department ON(department.depart_id = com.depart_id)
LEFT JOIN workgroup ON(workgroup.work_id = com.work_id) LEFT JOIN harddisk ON(harddisk.hard_id = com.hard_id) WHERE (com_user LIKE '%".$_GET["txtKeyword"]."%' or com_name LIKE '%".$_GET["txtKeyword"]."%' )";
if($_GET["depart_name"] != "")
{
$sql .= " AND (depart_name = '".$_GET["depart_name"]."') ";
}
if($_GET["txtKeyword"] != "")
{
$sql .= " AND (com_user LIKE '%".$_GET["txtKeyword"]."%' or com_name LIKE '%".$_GET["txtKeyword"]."%' ) ";
}
$sql .= " ORDER BY com.com_id DESC LIMIT ".$page_start." , ".$per_page."";
echo $sql ;
$query = mysql_query($sql) or die ("error query [".$sql."]");
?>
<?php
while($row = mysql_fetch_array($query))
{
?>
<tr>
<td align="center"><?php echo $row['com_id']?></td>
<td align="center"><?php echo $row['depart_name']?></td>
<td><?php echo $row['com_user']?></td>
<td><?php echo $row['com_name']?></td>
<td><?php echo $row['com_address']?></td>
<td align="center"><?php echo $row['work_name']?></td>
<td><?php echo $row['com_date']?></td>
<td><?php echo $row['com_cpu']?></td>
<td><?php echo $row['com_mb']?></td>
<td><?php echo $row['com_ram']?></td>
<td><?php echo $row['com_vga']?></td>
<td><?php echo $row['hard_name']?></td>
<td><?php echo $row['monitor_type']?></td>
<td><?php echo $row['monitor_name']?></td>
<td><?php echo $row['monitor_date']?></td>
<td><?php echo $row['monitor_2']?></td>
<td align="center"><a class="style1" href="edit.php?com_id=<?php echo $row['com_id']?>">แก้ไข</a></td>
<td align="center"><a class="style2" href="delete.php?com_id=<?php echo $row['com_id']?>"onclick="return confirm('คุณต้องการลบข้อมูลนี้?');">ลบ</a></td>
</tr>
<?php
}
?>
</table>
<br>
<a class="style1"><b>Total</b> <?= $num_rows;?> Record </a>: <a class="style2"><?=$num_pages;?> Page</a> :
<?php
if($prev_page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?page=$prev_page&depart_name=$_GET[depart_name]&txtKeyword=$_GET[txtKeyword]'>ย้อนกลับ</a> ";
}
for($i=1; $i<=$num_pages; $i++)
{
if($i != $page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?page=$i&depart_name=$_GET[depart_name]&txtKeyword=$_GET[txtKeyword]'>$i</a> ";
}
else
{
echo "<b> $i </b>";
}
}
if($page!=$num_pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?page=$next_page&depart_name=$_GET[depart_name]&txtKeyword=$_GET[txtKeyword]'>หน้าต่อไป</a>";
}
mysql_close();
?>
</body>
</html>
|
ประวัติการแก้ไข 2015-09-12 10:31:23
|
|
|
|
Date :
2015-09-12 10:18:26 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูตัวอย่าง จาก คห.4 ที่ผมเขียนไว้ครับ + โค๊ดเก่าของ จขกท เอง
เพื่อใช้ในการกำหนด pagination
|
|
|
|
|
Date :
2015-09-12 14:36:20 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วมัน error อะครับ พอจะลองช่วยแก้จากโค้ดผมให้ดูได้มั้ยครับ
|
|
|
|
|
Date :
2015-09-12 16:52:36 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บันทัดที่ 75 - 121 แก้เป็น
Code (PHP)
<?php
//////////////////////////////////////////////////////////////////////
$per_page = 15;
$page = isset($_GET["page"])? intval()$_GET["page"]) : 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$page_start = $prev_page * $per_page;
/////////////////////////////////////////////////////////////////////
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM com
LEFT JOIN department ON(department.depart_id = com.depart_id)
LEFT JOIN workgroup ON(workgroup.work_id = com.work_id)
LEFT JOIN harddisk ON(harddisk.hard_id = com.hard_id)
WHERE 1 ".
($_GET["depart_name"] ? " AND depart_name = '".mysql_real_escape_string($_GET["depart_name"])."' " : '').
($_GET["txtKeyword"] ? " AND concat(com_user,',',com_name) LIKE '%".mysql_real_escape_string($_GET["txtKeyword"])."%' ) ": '')."
ORDER BY com.com_id DESC
LIMIT $page_start , $per_page
";
echo $sql ;
$query = mysql_query($sql) or die (mysql_error()."<br>error query [".$sql."]");
//////////////////////////////////////////////////////////////////////////////////////
$rs=mysql_query('select FOUND_ROWS()');
$ro=mysql_fetch_row($rs);
$num_page=ceil(($num_rows=$ro[0]) / $per_page);
//////////////////////////////////////////////////////////////////////////////////////
while($row = mysql_fetch_array($query)){
?>
|
|
|
|
|
Date :
2015-09-12 17:56:56 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับ มันยังสามารถกดหน้าต่อไปได้เรื่อยๆ
ทั้งที่ไม่มีข้อมูลหน้านั้นอะครับ ควรแก้ตรงไหนต่อ
ขอโทษด้วยนะครับ ที่ถามเยอะ ^^
|
|
|
|
|
Date :
2015-09-14 11:33:53 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาโค๊ดที่แก้ไขแล้ว ไปอัพเดทที่ ความเห็น 7 แล้ว pm มาบอกครับเดี๋ยวจะเข้าไปดู
จะได้ไม่เปลือง พื้นที่ เวปครับ
|
|
|
|
|
Date :
2015-09-14 11:58:57 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้แก้ไขได้แล้ว ขอบคุณมากๆนะครับ ^^
|
|
|
|
|
Date :
2015-09-14 13:05:00 |
By :
่jayjayover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|