|
|
|
| Привет товарищи :). Есть вопросик, нужно решение, кто хочет подумать присоединяйтесь. Есть таблица в базе
<?PHP
$ap = mysql_query("SELECT * FROM `stat` WHERE `urlid`=$id and `dat`='$data 'ORDER BY `id`")or die(mysql_error());
?>
|
Вывожу в цикле
<?PHP
while($row=mysql_fetch_array($ap, MYSQL_ASSOC))
{
// Выводятся строки с подстановкой из $row['']
}
?>
|
Нужно разбить вывод цикла на страницы по 10 строк на каждой странице, и нумерацию страниц вывести ниже тела цикла.
Наведите на путь истины. | |
|
|
|
|
|
|
|
для: amsokol
(07.04.2013 в 17:36)
| | Каждая $row[''] это именно одна строка? | |
|
|
|
|
|
|
|
для: amsokol
(07.04.2013 в 17:36)
| | Спасибо за ВАШИ ответы, сам сообразил
Сначало определяем количество записей в таблице
<?PHP
$q=mysql_query("SELECT count(id) FROM `stat` WHERE `urlid`=$id");
$row=mysql_fetch_row($q);
$number_pages=$row[0];
?>
|
дальше получаем номер страницы и значение для лимита
<?php
$onpage=10;//количества записей на странице
if (isset($_GET['page']))
{
$NUM_PAGE=($_GET['page']);
}else{
$NUM_PAGE=1;
}
$start=abs(($NUM_PAGE-1)*$onpage);
?>
|
Дальше пишем запрос для цикла
<?PHP
$apsi = mysql_query("SELECT * FROM `stat` WHERE `urlid`=$id and `dat`='$data 'ORDER BY `id` LIMIT $start,$onpage")or die(mysql_error());
while($row=mysql_fetch_array($apsi, MYSQL_ASSOC))
{
// Выводятся строки с подстановкой из $row['']...
$DATA[++$start]=$row;
}
?>
|
Определяем адрес строки браузера до переменной page
<?PHP
$url = strtok($_SERVER['REQUEST_URI'],"?")."?";
unset($_GET['page']);
if ($_GET)
{
$url .= http_build_query($_GET)."&";
}
//Находим число страниц и заполняем массив ссылками на страници
$number_pages=ceil($numtotal/$onpage);
for($i=1;$i<=$number_pages;$i++)
{
$PAGES[$i]=$url.'page='.$i;
}
?>
Всего найдено записей: <b><?=$number_pages></b><br><br>
<br>Страницы:
<?PHP
foreach ($PAGES as $i => $link)
{
if ($i == $CUR_PAGE)
?>
<b><?=$i?></b>
<?PHP
}
else
{
?>
<a href="<?=$link?>"><?=$i?></a>
<?
}
}
?>
|
Вот такой код у меня получился, может кому пригодится.
Если у когото есть оптимальней решение-буду рад :) | |
|
|
|
|
|
|
|
для: amsokol
(07.04.2013 в 19:33)
| | Это называется постраничная навигация, а вы задаете вопрос о разбиении на строки (чего не понять?), что там у вас в таблице, действительно ли строки, или текст который надо на них разбить.... Советовать что-то при такой постановке вопроса невозможно. | |
|
|
|
|
|
|
|
для: confirm
(07.04.2013 в 19:44)
| | Извиняюсь, может не правильно поставил вопрос
и пока код писал немного ошибся, вот правильный код
$onpage=10;//количества записей на странице
if (isset($_GET['page']))
{
$NUM_PAGE=($_GET['page']);
}else{
$NUM_PAGE=1;
}
$start=abs(($NUM_PAGE-1)*$onpage);
?>
[/code]
Дальше пишем запрос для циклаrn
<?PHP
$apsi = mysql_query("SELECT * FROM `stat` WHERE `urlid`=$id and `dat`='$data 'ORDER BY `id` LIMIT $start,$onpage")or die(mysql_error());
while($row=mysql_fetch_array($apsi, MYSQL_ASSOC))
{
// Выводятся строки с подстановкой из $row['']...
$DATA[++$start]=$row;
}
?>
|
Определяем адрес строки браузера до переменной page
<?PHP
$url = strtok($_SERVER['REQUEST_URI'],"?")."?";
unset($_GET['page']);
if ($_GET)
{
$url .= http_build_query($_GET)."&";
}
//Находим число страниц и заполняем массив ссылками на страницы
$number_pages=ceil($numtotal/$onpage);
for($i=1;$i<=$number_pages;$i++)
{
$PAGES[$i]=$url.'page='.$i;rn}
?>
Всего найдено записей: <b><?=$numtotal></b><br><br>
<br>Страницы:
<?PHP
foreach ($PAGES as $i => $link)
{
if ($i == $CUR_PAGE)
?>
<b><?=$i?></b>
<?PHP
}
else
{
?>
<a href="<?=$link?>"><?=$i?></a>
<?
}
}
?>
|
| |
|
|
|