странициране на чатбокс

val4o0o0

Registered
Код:
<?php
define('IN_VALID', true);
include('chat/config.php');
mysql_query("SET NAMES UTF8");
$select = mysql_query("SELECT * FROM chatbox  ")or die(mysql_error());
$num = mysql_num_rows($select);
for ($i=0;$i<$num;$i++) {
$nick = mysql_result($select, $i, "nick");
$message = mysql_result($select, $i, "message");
echo '<b><img src="chat/chat.png" alt="" /> ' . $nick . ':</b> ' . $message . ' <div class="hr"></div>';
}
mysql_close();
?>

Някой може ли да ми добави странициране, но искам при много страници примерно 100 да не се показват, а да има примерно 1,2,3....100 и при натискане на 3-тата да се появяват 4,5,6 и т.н.
Надявам се да сте ме разбрали :)
 
shterev каза:
разгледай тоя туториал:
http://www.phpeasystep.com/phptu/29.html

Не, искам нещо по-просто и надали ще успея сам, ето кода вече е по елементарен:

Код:
<?php
define('IN_VALID', true);
include('chat/config.php');
mysql_query("SET NAMES UTF8");
$select = mysql_query("SELECT * FROM chatbox  ")or die(mysql_error());
$num = mysql_num_rows($select);
for ($i=0;$i<$num;$i++) {
$nick = mysql_result($select, $i, "nick");
$message = mysql_result($select, $i, "message");
echo '<b><img src="chat/chat.png" alt="" /> ' . $nick . ':</b> ' . $message . ' <div class="hr"></div>';
}
mysql_close();
?>

Някои би ли ми добавил странициране ?
ПП: по 10 резултата на страница
 
Това ще ти свърши ли работа?

Код:
<?php
//$ns - номер страница
//$br - брой страница
//$one - първа
//$sl - следваща
//$pl - последна
//$pr - предишна
$br = 10;
$pageNum = 1;
if(isset($_GET['page'])) {
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $br;
$result =  mysql_query(" SELECT * FROM `chatbox` ORDER BY id DESC "." LIMIT $redove, $br")or die('Не си избрал страница!');;
while($row = mysql_fetch_array($result)) {
$id = $row['id'];
$nick = $row['nick'];
$message = $row['message'];
echo '<b><img src="chat/chat.png" alt="" /> ' . $nick . ':</b> ' . $message . ' <div class="hr"></div>'; 
}
$query = "SELECT COUNT(id) AS numrows FROM chatbox";
$result = mysql_query($query) or die('Не си избрал страница!');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$br);
$ns = '';
for($page = 1; $page <= $maxPage; $page++) {
if ($page == $pageNum) {
$ns .= " $page ";
}
else {
$ns .= " <a href=\"?a=ranking&page=$page\">$page</a> ";
}}
if ($pageNum > 1) {
$page = $pageNum - 1;
$pr = " <a href=\"?a=ranking&page=$page\"> [<] </a> ";
$one = " <a href=\"?a=ranking&page=1\">[първа]</a> ";
}
else {
$pr = ' ';
$one = ' ';
}
if ($pageNum < $maxPage) {
$page = $pageNum + 1;
$sl = (" <a href=\"?a=ranking&page=$page\"> [>] </a> ");
$pl = (" <a href=\"?a=ranking&page=$maxPage\">[последна]</a> ");
}
else {
$sl = '';
$pl = '';
}
echo $one . $pr . $ns . $sl . $pl;
?>
 
Нямам представа, защо ти се скрива дясното меню при положение, защото въобще не ти знам другите кодове. Не съм врачка.

Промених кода и махнах една таблица, виж сега как е, може би е от това.
 

Back
Горе