ต่อจาก17077 ค่ะ คือว่าจะแสดงผลข้อมูลแบ่งออกเป็นหน้าๆได้เอาโค้ดจากเวบไปใช้แต่มันขึ้นว่า
$sql = "select * From member ";
/* ตั้งค่า แสดงผลต่อหน้า $Per_Page */
$Per_Page =2;
if(!$Page)
$Page=1;
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$result = mysql_query($sql);
$Page_start = ($Per_Page*$Page)-$Per_Page;
$Num_Rows = mysql_num_rows($result);
....
....
....
if(($Page>$Num_Pages) || ($Page<0))
print "<center><b>จำนวน $Page มากกว่า $Num_Pages ยังไม่มีข้อความ<b></center>";
$sql .= " Where 1 Order by id Desc LIMIT $Page_start , $Per_Page";
//ส่วนแสดงผล
$result = mysql_query($sql);
While($row= mysql_fetch_array($result)){
คุณ ไม่รู้จิงๆ ประกาศ ตัวแปร $sql ถึง 2 ครั้ง และ ประกาศ $result ถึง 2 ครั้ง
While จึงไม่ทราบว่าจะใช้ $row โดยอ้างอิง $result จากตัวไหน
ผมคิดว่างั้นนะคับ
ใครคิดแตกต่างจากผมก้อช่วยกันเสนอแนะหน่อย ^^"
Date :
11 ธ.ค. 2550 11:45:30
By :
topkung
f(($Page>$Num_Pages) || ($Page<0))
print "<center><b>จำนวน $Page มากกว่า $Num_Pages ยังไม่มีข้อความ<b></center>";
$sql .= " Where 1 Order by id Desc LIMIT $Page_start , $Per_Page";
//ส่วนแสดงผล
$result = mysql_query($sql);
While($row= mysql_fetch_array($result)){
$id = $row["id"];
$user = $row["user"];
$name = $row["name"];
$email = $row["email"];
$tel = $row["tel"];
ตรง where 1 นี้คือะไรครับ ลงลบออกให้เหลือแต่ order by ... ดูครับ
Date :
11 ธ.ค. 2550 13:03:42
By :
namfar
ลองใหม่แล้วค่ะ ตอนนี้ข้อมูลขึ้น แต่ว่าไม่แบ่งเป็นหน้า หน้าละ สองให้ค่ะ แต่ขึ้นทั้ง สิบข้อมูลค่ะ
ยังไงก็ขอบคุณ คุณtopkung มากค่ะ
Date :
11 ธ.ค. 2550 13:17:51
By :
ไม่รู้จิงๆ
ลองลบ where 1 แล้วค่ะคุณnamfar มันขึ้นอย่างนี้ค่ะ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\table\4.php on line 58
คือบรรทัดนี้ค่ะ
While($row= mysql_fetch_array($result)){
Date :
11 ธ.ค. 2550 13:24:28
By :
ไม่รู้จิงๆ
ลอง แยกการติดต่อฐานข้อมูลออกเป็น 2 ครั้งจะดีกว่ามั๊ยคับ
//ติดต่อฐานข้อมูลเพื่อแบ่งหน้า
$sql = "select * From member ";
/* ตั้งค่า แสดงผลต่อหน้า $Per_Page */
$Per_Page =2;
if(!$Page)
$Page=1;
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$result = mysql_query($sql);
$Page_start = ($Per_Page*$Page)-$Per_Page;
$Num_Rows = mysql_num_rows($result);
.......
*******************************************************************
//ติดต่อฐานข้อมูลเพื่อแสดงข้อมูล
if(($Page>$Num_Pages) || ($Page<0))
print "<center><b>จำนวน $Page มากกว่า $Num_Pages ยังไม่มีข้อความ<b></center>";
$sql2 = " select * From member Where (เงื่อนไข) Order by id Desc LIMIT $Page_start , $Per_Page";
//ส่วนแสดงผล
($result2) = mysql_query($sql2) ;
While($row= mysql_fetch_array(($result2) ){
$id = $row["id"];
$user = $row["user"];
$name = $row["name"];
$email = $row["email"];
$tel = $row["tel"];
*********************************************************************
ลองแก้ดูนะคับ
Date :
11 ธ.ค. 2550 13:43:48
By :
topkung
เหอะๆ ผิดปายนิสสสนึง
//แก้
$sql2 = " select * From member Order by id Desc LIMIT $Page_start , $Per_Page";
Date :
11 ธ.ค. 2550 13:46:23
By :
topkung
ผมว่าดูตรงเงื่อนไข where ดี ๆ นะครับ แล้วก็เปลี่ยน sql2 ตามที่คุณ topkung บอกก็ไม่น่าจะมีปัญหาแล้ว แต่หากยังมี Error อยู่ผมว่าไป copy โค้ดมาแปะใหม่ดีกว่าครับ เพราะผมก็ใช้ตัวนี้เหมือนกันก็ไม่มีปัญหาอะไรครับ
Date :
11 ธ.ค. 2550 13:49:24
By :
namfar
ขึ้นเหมือนเดิมค่ะ พอจะมีโค้ดใหม่ทั้งหมดมั้ยค่ะ ยังไงก็ขอขอบคุณทุกๆคนค่ะ ท้งคุณtopkung และคุณnamfar จะพยายามค่ะ
เพราะเพิ่งเคยเขียนโค้ด php ครั้งแรก อาจจะดูงี่เง่าไปนิด ก็อาศัยก๊อบๆโค้ดเข้ามาแล้วมานั่งทำความเข้าใจอ่ะค่ะ ขอบคุณจริงๆค่ะ
Date :
11 ธ.ค. 2550 14:25:42
By :
ไม่รู้จิงๆ
<?php
$link=mysql_connect("localhost","root","");
mysql_select_db("yapa",$link);
$sql="Select count(*) From infomation"; //นับจำนวน Record ทั้งหมดใน Table
$rs=mysql_query($sql);
$total_rec=mysql_result($rs,0,0); // เก็บจำนวน Record ทั้งหมดไว้ใน $total_page
$p_size=25; //กำหนดจำนวน Record ที่จะแสดงผลต่อ 1 เพจ
$total_page=(int)($total_rec/$p_size);
//ทำการหารหาจำนวนหน้าทั้งหมดของข้อมูล ในที่นี้ให้หารออกมาเป็นเลขจำนวนเต็ม
if(($total_rec % $p_size)!=0){ //ถ้าข้อมูลมีเศษให้ทำการบวกเพิ่มจำนวนหน้าอีก 1
$total_page++;
}
if(empty($_GET['page'])){
$page=1;
$start=0;
}else{
/*
หากมีการส่งค่ามาเพื่อเลือกดูหน้าข้อมูลหน้าใดให้ทำการคำนวน โดยใช้ จำนวนข้อมูลที่ต้องการแสดงต่อ 1 เพจ คูณกับ หน้าข้อมูลที่ต้องการเลือกชม ลบด้วย 1
*/
$page=$_GET['page'];
$start=$p_size*($page-1);
}
$sql="Select * From infomation LIMIT $start , $p_size";
//ใช้ Option LIMIT ของ MySQL เพื่อทำการเลือกข้อมูลออกมาตามต้องการ
$rs=mysql_query($sql);
while($result=mysql_fetch_array($rs)){ //วนรอบแสดงข้อมูล
echo $result["title"]."<br>";
}
for($i=1;$i<=$total_page;$i++){ //สร้าง Link เพื่อให้ผู้ใช้งานเลือกชมหน้าข้อมูล
echo "<a href=".$_SERVER['PHP_SELF']."?page=".$i.">หน้าที่ ".$i."</a> ";
}
?>
ลองดูใหม่น่ะ ตามนี้ ค่อย ๆ ดูที่ละบรรทัด
Date :
11 ธ.ค. 2550 17:45:45
By :
namfar
มีเป็นแบบ function นะไม่รู่จะเข้าใจป่าว
<?
connect("localhost","root","","database");
if(!isset($start)){$start = 0;}
if(!isset($page)){$page=1;}
$limit = 3; // กำหนดจำนวนสินค้าที่แสดงต่อ1หน้า
$maxpage =5; // กำหนดจำนวนหมายเลขหน้า
$num = select_table("*","my_table","","num");
$data = select_table("*","my_table","LIMIT $start,$limit","num");
// select_table() คือ function select
// select_table("*","ตาราง","เงือนใข","num");
// ถ้ามีเงือนใขให้กำหนด เช่น select_table("*","table","where field = '123'","num");
while ($arr_data = mysql_fetch_array($data[0])) // $data[0] คือค่า query
{
echo $arr_data[1]."<br>"; //แสดงข้อมูล
}
echo show_page($num[1],$maxpage,"");
// show_page() คือ function แบ่งหน้า
// show_page(จำนวนทั้งหมด,$maxpage,"เงือนใข")
function connect($host,$user,$pw,$name_datadase) // ติดต่อฐานข้อมูล
{
$con=mysql_connect($host,$user,$pw) or die ("could not connect");
$db=mysql_select_db($name_datadase);
$arrcon = array($con,$db);
if($con)
return $arrcon;
else
return false;
}
function select_table($select,$table,$proviso,$s) // function select ตาราง
{
$sql = "SELECT $select FROM $table $proviso";
$query = mysql_query($sql);
if($s=="num"){$result = mysql_num_rows($query);}
else if($s=="fetch"){$result = mysql_fetch_array($query);}else{ $result = false;}
if($query){$array = array($query,$result); return $array;}
else{ return false;}
mysql_close();
}
function show_page($result_total,$max_page,$where) // function แบ่งหน้า
{
global $limit;
global $j;
global $page;
$sum_page = ceil($result_total/$limit);
$next = ceil($sum_page/$max_page);
$mod = $sum_page%$max_page;
$k=1;
for($n=0;$n<=$sum_page;$n=$n+$max_page)
{
$arr_page[$k]=$n;
$k++;
}
if($mod!=0)
{
$arr_page[$k]=$sum_page;
}
if(!isset($j)){$j=1;}
for($i=$arr_page[$j];$i<=($arr_page[$j+1]-1);$i++)
{
$p=$i+1;
if($j>1 && $i==$arr_page[$j])
{
echo "<a href='?".$where."start=".$limit*($p-2)."&page=".($p-1)."&j=".($j-1)."'><b><<</b></a> " ;
}
if($p==$page)
{
echo "<font color='#000000'>$p</font>";
}
else
{
echo "<a href='?".$where."start=".$limit*($p-1)."&page=$p&j=$j'><font color='#FF0000'><b>$p</b></font></a>" ;
}
if($i < $arr_page[$j+1]-1){echo" | ";}
if($j<$next && $i ==($arr_page[$j+1]-1))
{
echo " <a href='?".$where."start=".($limit*$p)."&page=".($p+1)."&j=".($j+1)."'><b>>></b></a>" ;
}
}
}
?>
Date :
12 ธ.ค. 2550 08:33:48
By :
heng
Load balance : Server 03