|
|
|
เรื่องแบ่งหน้าค่ะ ของเดิมมันเป็นแบบนี้ ค่ะ << 1 2 3 4 5 6 7 8 9 10 11 12 >> คือมีกี่หน้าโชว์หมด |
|
|
|
|
|
|
|
ขอดูโค้ดที่ใช้แบ่งหน้าหน่อยได้ไหมครับ จะได้บอกถูก
|
|
|
|
|
Date :
20 ส.ค. 2551 11:37:14 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$intRows = 0; // for tabale color
$sql = "SELECT * FROM user_mst WHERE user_usertype_id = '05' ORDER BY user_id";
// Page
$per_page = 10;
if(!$page)
{
$page = 1;
}
$prev_page = $page - 1;
$next_page = $page + 1;
$result = mysql_db_query($dbname,$sql);
$page_start = ($per_page * $page) - $per_page;
$num_row = mysql_num_rows($result);
if($num_row <= $per_page)
{
$num_page = 1;
}else if(($num_row%$per_page) == 0)
{
$num_page = ($num_row/$per_page);
}else{
$num_page = ($num_row/$per_page)+ 1;
$num_page = (int)$num_page;
}
if(($page > $num_page)||($page < 0))
{
echo"$page more than $num_page ";
exit();
}
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_db_query($dbname,$sql);
// end sql page
// $rcolor="#FFFFFF";
while($rs = mysql_fetch_array($result))
{
// set table color
$intRows++;
if($intRows%2==0)
{
$rcolor="#F1F1F1";
}else{
$rcolor="#FFFFFF";
}
// end set tabale color
$user_id = $rs[user_id];
$user_name = $rs[user_username];
$fname = $rs[user_fname];
$lname = $rs[user_lname];
$create_date = $rs[user_createdate];
$last_log = $rs[user_lastlogindate];
$last_update = $rs[user_updatedate];
$user_type = $rs[user_usertype_id];
if($user_type == 01)
{
$user_type = "<font color='green'>admin</font>";
}else{
$user_type = 'user';
}
$user_status = $rs[user_isactive];
if($user_status==1)
{
$user_status = "<font color='green'>active</font>";
}else{
$user_status = "<font color='red'>non active</font>";
}
?>
<tr bgcolor="<?=$rcolor?>">
<td valign="top" align="right"><?=$intRows?></td>
<td valign="top"><?="<a href='edit_admin.php?id=$user_id'>$user_id</a>"?></td>
<td valign="top"><?=$user_name?></td>
<td valign="top"><?=$fname?> <?=$lname?></td>
<td valign="top"><?=$create_date?></td>
<td valign="top"><?=$last_log?></td>
<td valign="top"><?=$last_update?></td>
<td align="center" valign="top"><?=$user_type?></td>
<td align="center" valign="top"><?=$user_status?></td>
<td align="center" valign="top"><?="<a href='edit_admin.php?id=$user_id'>more..</a>"?></td>
<td valign="top" align="center"><input name="cb<?=$a;?>" type="checkbox" id="cb<?=$a;?>" value="<?=$user_id?>" /> </td>
</tr>
<?
}
?>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td align="center" valign="top"><input type="button" name="del_all" value="Delete Select" /></td>
</tr>
</table>
<?
$a++;
//}
?>
<br>
<input name="boxchecked" type="hidden" id="boxchecked" value="<?=$a;?>">
</form>
</td>
</tr>
<tr>
<td colspan="3" align="center"> </td>
</tr>
<tr>
<td colspan="3" align="center">
<?
// Dispaly
?>
<b><?=$num_row;?></b>
user : <b><?=$num_page;?></b> page :<br />
<?
/* Prev page*/
if ( $prev_page )
echo "<a href=\"$PHP_SELF?page=$prev_page\"><< Prev</a>";
/* number */
for ( $i=1; $i<=$num_page; $i++ )
{
if ( $i != $page )
echo " [<a href=\"$PHP_SELF?page=$i\">$i</a>] ";
else
echo " <strong>$i</strong> ";
}
/* Next page*/
if ( $page != $num_page )
echo "<a href=\"$PHP_SELF?page=$next_page\"> Next >></a>";
?>
ขอบคุณมากค่ะ
|
|
|
|
|
Date :
20 ส.ค. 2551 16:36:03 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ่อ ขอติดเป็นดึกๆนะครับจะมาตอบ ขอเวลาคิดซักแปบ
|
|
|
|
|
Date :
20 ส.ค. 2551 17:23:51 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ค่ะ ขอบคุณมากนะคะ คุณ ผ่านมา
|
|
|
|
|
Date :
20 ส.ค. 2551 17:37:46 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้า แบ่งโดยให้โชว์หน้าใน list/menu ต้องทำยังไงคะ
|
|
|
|
|
Date :
20 ส.ค. 2551 19:04:40 |
By :
อยากรู้เหมือนกัน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเพิ่ม
$range=2;
$start=$page-$range;
$end=$page+$range;
$start=$page-$range;
$end=$page+$range;
if($start<=1)
{
$start=1;
}
if($end>=$totalpage)
{
$end=$totalpage;
}
ไว้ด้านล่างของ
$prev_page = $page - 1;
$next_page = $page + 1;
และลองเปลี่ยน
for ( $i=1; $i<=$num_page; $i++ )
เป็น
for($i=$start;$i<=$end;$i++)
ดูนะครับ ได้ผลอย่างไรกลับมาแจ้งด้วยนะครับ
ขอโทษที่เมื่อคืนไม่ได้ตอบ เมามากไปหน่อย
|
|
|
|
|
Date :
21 ส.ค. 2551 10:27:11 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใส่แล้วค่ะ แต่มันขึ้นแต่ << กับ >> แต่ไม่โชว์เลขหน้า ไม่ทราบว่าต้องเพิ่มตรงไหนอีกหรือป่าวคะ
|
|
|
|
|
Date :
21 ส.ค. 2551 12:18:21 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองอันนี้ดูนะครับ เผื่อคุณน้องแนนใส่โค้ดที่ผมให้ผิดที่ ผมคิดว่าไม่น่าผิดละนะครับ
$intRows = 0; // for tabale color
$sql = "SELECT * FROM user_mst WHERE user_usertype_id = '05' ORDER BY user_id";
// Page
$per_page = 10;
if(!$page)
{
$page = 1;
}
$range=2;
$start=$page-$range;
$end=$page+$range;
if($start<=1)
{
$start=1;
}
if($end>=$totalpage)
{
$end=$totalpage;
}
$prev_page = $page - 1;
$next_page = $page + 1;
$result = mysql_db_query($dbname,$sql);
$page_start = ($per_page * $page) - $per_page;
$num_row = mysql_num_rows($result);
if($num_row <= $per_page)
{
$num_page = 1;
}else if(($num_row%$per_page) == 0)
{
$num_page = ($num_row/$per_page);
}else{
$num_page = ($num_row/$per_page)+ 1;
$num_page = (int)$num_page;
}
if(($page > $num_page)||($page < 0))
{
echo"$page more than $num_page ";
exit();
}
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_db_query($dbname,$sql);
// end sql page
// $rcolor="#FFFFFF";
while($rs = mysql_fetch_array($result))
{
// set table color
$intRows++;
if($intRows%2==0)
{
$rcolor="#F1F1F1";
}else{
$rcolor="#FFFFFF";
}
// end set tabale color
$user_id = $rs[user_id];
$user_name = $rs[user_username];
$fname = $rs[user_fname];
$lname = $rs[user_lname];
$create_date = $rs[user_createdate];
$last_log = $rs[user_lastlogindate];
$last_update = $rs[user_updatedate];
$user_type = $rs[user_usertype_id];
if($user_type == 01)
{
$user_type = "<font color='green'>admin</font>";
}else{
$user_type = 'user';
}
$user_status = $rs[user_isactive];
if($user_status==1)
{
$user_status = "<font color='green'>active</font>";
}else{
$user_status = "<font color='red'>non active</font>";
}
?>
<tr bgcolor="<?=$rcolor?>">
<td valign="top" align="right"><?=$intRows?></td>
<td valign="top"><?="<a href='edit_admin.php?id=$user_id'>$user_id</a>"?></td>
<td valign="top"><?=$user_name?></td>
<td valign="top"><?=$fname?> <?=$lname?></td>
<td valign="top"><?=$create_date?></td>
<td valign="top"><?=$last_log?></td>
<td valign="top"><?=$last_update?></td>
<td align="center" valign="top"><?=$user_type?></td>
<td align="center" valign="top"><?=$user_status?></td>
<td align="center" valign="top"><?="<a href='edit_admin.php?id=$user_id'>more..</a>"?></td>
<td valign="top" align="center"><input name="cb<?=$a;?>" type="checkbox" id="cb<?=$a;?>" value="<?=$user_id?>" /> </td>
</tr>
<?
}
?>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"></td>
<td align="center" valign="top"><input type="button" name="del_all" value="Delete Select" /></td>
</tr>
</table>
<?
$a++;
//}
?>
<br>
<input name="boxchecked" type="hidden" id="boxchecked" value="<?=$a;?>">
</form>
</td>
</tr>
<tr>
<td colspan="3" align="center"> </td>
</tr>
<tr>
<td colspan="3" align="center">
<?
// Dispaly
?>
<b><?=$num_row;?></b>
user : <b><?=$num_page;?></b> page :<br />
<?
/* Prev page*/
if ( $prev_page )
echo "<a href=\"$PHP_SELF?page=$prev_page\"><< Prev</a>";
/* number */
for($i=$start;$i<=$end;$i++)
{
if ( $i != $page )
echo " [<a href=\"$PHP_SELF?page=$i\">$i</a>] ";
else
echo " <strong>$i</strong> ";
}
/* Next page*/
if ( $page != $num_page )
echo "<a href=\"$PHP_SELF?page=$next_page\"> Next >></a>";
?>
|
|
|
|
|
Date :
21 ส.ค. 2551 16:59:23 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังเหมือนเดิมค่ะ คุณผ่านมา ไม่โชว์เลข 1 2 3 4 โชว์แต่ << Prev Next >> ค่ะ
|
|
|
|
|
Date :
21 ส.ค. 2551 17:15:20 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถามอีกเรื่องนะคะ ทำไมตัวเลข number มันไม่รันต่อที่หน้าที่ 2 คะ คือ หน้าที่ 1 แจะแสดง 1 - 10 แล้วพอคลิก next มันก็รัน 1 - 10 เหมือนเดิม หนูอยากให้คลิกหน้าต่อไปแล้ว number ต่อไปเป็น 11 -20 ต่อไปเรื่อยๆค่ะ ขอบคุณนะคะที่ช่วย
|
|
|
|
|
Date :
21 ส.ค. 2551 17:22:40 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ่อ ตรง
for($i=$start;$i<=$end;$i++)
{
if ( $i != $page )
echo " [<a href=\"$PHP_SELF?page=$i\">$i</a>] ";
else
echo " <strong>$i</strong> ";
}
ลอง
echo อะไรซักอย่างออกมานะครับ เช่น
for($i=$start;$i<=$end;$i++)
{
if ( $i != $page )
echo " [<a href=\"$PHP_SELF?page=$i\">$i</a>] ";
echo "debug 1";
else
echo " <strong>$i</strong> ";
echo "debug 2";
}
คือพอดีผมไม่มีฐานข้อมูลให้ลองนะครับ เลยต้องมั่วๆนิดหน่อย
ถ้าไม่มีอะไรออกมา รบกวนโพสต์บอกไว้อีกทีนะครับ
|
|
|
|
|
Date :
21 ส.ค. 2551 23:19:30 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหมือนเดิมเลยค่ะ คุณผ่านมา ตรง echo "debug 1"; กับ echo "debug 2"; ไม่แสดง เลยค่ะ โชว์แต่ << Prev Next >> เหมือนเดิมค่ะ
|
|
|
|
|
Date :
21 ส.ค. 2551 23:49:10 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ่อ งั้นแสดงว่าตรงเงื่อนไขของ for($i=$start;$i<=$end;$i++) เป็นเท็จละ
รบกวนลอง echo ตัวแปรต่างๆออกมาดูนะครับแล้วดูว่ามันผิดพลาดตรงไหน
ค่อยๆแก้ไปนะครับพอทำได้แล้วเราจะภูมิใจ
|
|
|
|
|
Date :
22 ส.ค. 2551 09:31:31 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วค่ะ คุณผ่านมา
เปลี่ยนจาก
f($end>=$totalpage)
{
$end=$totalpage;
}
เป็น
if($end>=$page)
{
$end=$page;
}
แต่มีอีกเรื่องค่ะ ทำไมตัวเลข number ( $intRows ) มันไม่รันต่อที่หน้าที่ 2 คะ คือ หน้าที่ 1 แจะแสดง 1 - 10 แล้วพอคลิก next มันก็รัน 1 - 10 เหมือนเดิม หนูอยากให้คลิกหน้าต่อไปแล้ว number ต่อไปเป็น 11 -20 ต่อไปเรื่อยๆค่ะ ขอบคุณนะคะที่ช่วยดูอีกทีนะคะ
|
|
|
|
|
Date :
22 ส.ค. 2551 12:22:06 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
number นี้คืออะไรเหรอครับ หมายถึงข้อมูลที่นำมาแสดงหรือเปล่า ถ้าใช่แสดงว่าโค้ดอจะผิดตรง
$sql .= " LIMIT $page_start, $per_page"; นะครับ
|
|
|
|
|
Date :
22 ส.ค. 2551 14:38:31 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษค่ะ พิมพ์ผิด ตัวที่เอามาแสดงคือ $intRows ค่ะ มันไม่รันต่อที่หน้าที่ 2 คะ คือ หน้าที่ 1 แจะแสดง 1 - 10 แล้วพอคลิก next มันก็รัน 1 - 10 เหมือนเดิม หนูอยากให้คลิกหน้าต่อไปแล้ว ตัวเลข ต่อไปเป็น 11 -20 ต่อไปเรื่อยๆค่ะ
ที่บอกว่า ผิดที่ $sql .= " LIMIT $page_start, $per_page"; ต้องแก้เป็นอะไรเหรอคะ
ขอบคุณนะคะ
|
|
|
|
|
Date :
22 ส.ค. 2551 15:45:21 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่บอกว่า ผิดที่ $sql .= " LIMIT $page_start, $per_page"; คือผมคิกว่า number คือข้อมูลที่เอามาแสดงนะครับ
ส่วนที่ต้องการการรันตัวเลขนะครับ
$intRows=(($page-1)*10)+$อะไรซักอย่าง;
$อะไรซักอย่าง++ ;
เอาไปแทนที่ $intRows++;
แล้ว $อะไรซักอย่ ;เนี่ย กำหนดให้เป็น 1 แล้วเอาไว้ก่อน loop ที่วนแสดงค่านะครับ
ก็อคือเอาไปไว้ก่อน while($rs = mysql_fetch_array($result))
|
|
|
|
|
Date :
22 ส.ค. 2551 16:02:13 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วค่ะ คุณผ่านมา ขอบคุณมากนะคะคุณผ่านมา ได้ไม่ได้คุณ หนูคงแย่แน่ๆเลย ขอบคุณจากใจจริงๆค่ะ
|
|
|
|
|
Date :
22 ส.ค. 2551 16:46:44 |
By :
น้องแนน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ด้วยความยินดีครับ โดยเฉพาะสาวๆ
|
|
|
|
|
Date :
22 ส.ค. 2551 16:50:14 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|