|
|
|
| Как сделать(пхп), чтобы выводило по 10 записей на страницу, а ниже странички 1 2 3 4...
На которих соответственно 0-10 11-20 21-30 31-40 записей.....
ЗЫ: мне энто и для новостей и для гостевой и корорче для много чего надо! Хелп!
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Karum
(05.03.2006 в 15:15)
| | Это смотря в чём хранятся данные: в БД или файлах? | |
|
|
|
|
|
|
|
для: krollik
(05.03.2006 в 15:40)
| | БД, мускул | |
|
|
|
|
|
|
|
для: Karum
(05.03.2006 в 15:46)
| | Хелп, срочно нада, поогите! | |
|
|
|
|
|
|
|
для: Karum
(05.03.2006 в 16:47)
| | в запрос засовывай вконец строку типа
где X - число с какой записи выводить, а Y - число сколько записей.. | |
|
|
|
|
|
|
|
для: krollik
(05.03.2006 в 17:03)
| | это называется постраничный вывод. тут было много таких тем и есть целая огромная статья. | |
|
|
|
|
|
|
|
для: elenaki
(05.03.2006 в 17:21)
| | Спасиб статью я нашел(http://softtime.ru/info/articlephp.php?id_article=33), но возникли проблемы
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>
|
Последняя строка... Она вообще правильная?
<?php
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['name']."</td>
<td>".$postrow[$i]['time']."</td></tr>
<tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
}
echo "</table>";
?>
|
Выдает кучу ошибок на строке <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>"; | |
|
|
|
|
|
|
|
для: elenaki
(05.03.2006 в 17:21)
| | Вот мой код, неполный без номеров страниц, но! ошибок не выдает, но и нечего не выводит!
// Переменная хранит число сообщений выводимых на станице
$num = 10;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM news");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$total = "intval(($posts - 1) / $num) + 1";
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM news LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while($postrow=mysql_fetch_array($result)){
//таблица
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['themenews']."</td>
</tr>
<tr><td>".$postrow[$i]['textnews']."</td></tr>";
}
echo "</table>";
}
|
Проверял и смотрю, что при значении $page=1 $num=10
$start = $page * $num - $num;
$start=-10 Но как он может = -10? когда он должен ровняться 0??? | |
|
|
|
|
|
|
|
для: Karum
(05.03.2006 в 20:02)
| | фух.... получилось. Мужики, а вы сами проверяли тот код, что другим даете? Или вы его специально с багами написали? | |
|
|
|