|
|
|
| Пользуюсь статьей http://www.softtime.ru/info/articlephp.php?id_article=33 для постраение постраничной навигации. Тока что то выдает ошибки:
вот код:
<?php
// Устанавливаем соединение с базой данных
include "connections\asd.php";
// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM news");
$posts = mysql_result($result, 0);
// Находим общее число страниц
$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))
?>
|
Выдает ошибки:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\TMP5xetlc8t0.php on line 18
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\TMP60lp0c8x5.php on line 34
Подскажите в чем тут дело? | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 16:03)
| | Проверьте файл connections\asd.php соединения с базы данных. У вас наверное имена таблицы или имя ДБ указаны не верно. | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 16:03)
| | Не знаю, может это повлиять на работоспособность, но в это строчке
$result = mysql_query("SELECT COUNT(*) FROM news");
|
между Фром и Ньюс два пробела. | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 16:03)
| | С БД соединение есть, таблица тоже указана верна.
вот в этих строках у меня ошибки:
$posts = mysql_result($result, 0);
|
и
while ( $postrow[] = mysql_fetch_array($result))
|
| |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 16:26)
| | Я тут нашел еще один способ постраничного вывода информации.
Там ошибок не возникает ни каких, только проблема с переходом по страницам.
<?php
function yandex_link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок; например, вставить "|" между ссылками
// Для придания ссылкам стиля
$style = 'style="color: #808000; text-decoration: none;"';
$begin = $page - intval($show_link / 2);
unset($show_dots); // На всякий случай :)
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции
// Подключение к базе данных
mysql_connect('localhost', 'root', '') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('baza') or die('error! Нет соединения с базой данных!');
// Подготовка к постраничному выводу
$perpage = 1; // Количество отображаемых данных из БД
if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from news')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('select * from news limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['polnay'].'</p>';
}
?>
|
Помогите пожалуйста. | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 19:08)
| | Уберите "0" mysql_result($result);
$posts = mysql_result($result, 0);
|
| |
|
|
|
|
|
|
|
для: Usta
(04.05.2008 в 21:33)
| | Да, лучше писать
$posts = mysql_result($result, '*'); т.к по идеи это строка, а ставя * вы смотрим все строки. | |
|
|
|
|
|
|
|
для: devil943
(04.05.2008 в 21:36)
| | Да все равно не получается, я уже пробовал и с нулем и без него, и с * все равно ошибки выводит.
Может со вторум скриптом мне кто поможет разобраться. Там вроде все нормально, только по страницам не переход. ( | |
|
|
|
|
|
|
|
для: Makroris
(05.05.2008 в 11:08)
| | Что значит "не переход", запрос происходит к несуществующим страницам или в чем проблемы? Взятый вами скрипт ведь не обязательно должен на все 100% подходить вам, что-то все равно вам придется править, а вы видимо этого не сделали, или я не прав? | |
|
|
|
|
|
|
|
для: sim5
(05.05.2008 в 11:16)
| | Отображает записи только первой страницы, на остальные жмешь ни чего не происходит.
А что еще переделать надо. Подключение к базе переделал, название таблици и поля тоже.
Что еще надо? Подскажите, пожалуйста. | |
|
|
|
|
|
|
|
для: Makroris
(05.05.2008 в 11:36)
| | Самое главное, что надо, это уяснить принцип работы этого скрипта. Будете понимать - проблемы разрешите, нет - будете постоянно здавать вопросы. Ну самое простое, что вам можно сделать, это в браузере выбрать "Вид -> Просмотр HTML-кода" (или правый щелчек по странице и выбрать "Просмотр HTML-кода"), и просмотреть результат работы этого скрипта. Смотрим все записи в навигаторе (верны ли запросы атрибута href, параметры запроса), анализируем какие запросы будет получать скрипт, смотрим свою базу - а есть ли там в ней то, что запрашиваем... Если вообще ничего не происходит, то у вас либо в базе одна запись, либо вторая (и т.д.) страница в навигаторе это не ссылка, либо... Далее только гадать можно, а нужен анализ происходящего. | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 19:08)
| | Со страницами я разобрался.
Теперь не могу сделать нормально вывод из базы данных.
Мне надо что бы информация выводилась в таблице.
<table width="100%" height="100%" border="1">
<tr>
<td>Дата публикации:<?php echo date ("d.m.y" , strtotime( $row['date']));?></td>
</tr>
<tr>
<td><?php echo $row_Recordset1['ne_polnay']; ?></td>
</tr>
<tr>
<td><a href="news_polnay.php?id=<?php echo $row['id']; ?>">Читать
всю...</a></td>
</tr>
</table>
|
Какими это тегами обводит?
что то не получаеться ни чего постоянно ошибки выдает! :( | |
|
|
|
|
|
|
|
для: Makroris
(05.05.2008 в 21:49)
| | Какие ошибки выдает?
И полностью привести пример того, что делаете. | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 19:08)
| | Ошибки самые разнообразные )
Ну пример выше,скрип который. мне за место записи
echo '<p>'.$row['polnay'].'</p>';
|
нужно что бы таблица выводилась
<table width="100%" height="100%" border="1">
<tr>
<td>Дата публикации:<?php echo date ("d.m.y" , strtotime( $row['date']));?></td>
</tr>
<tr>
<td><?php echo $row_Recordset1['ne_polnay']; ?></td>
</tr>
<tr>
<td><a href="news_polnay.php?id=<?php echo $row['id']; ?>">Читать
всю...</a></td>
</tr>
</table>
|
как её туда вставить правильно | |
|
|
|
|
|
|
|
для: Makroris
(05.05.2008 в 22:34)
| |
<table width="100%" height="100%" border="1">
<?php
// здесь коннект к базе
$num = 25;
$page = $_GET['page'];
$r="SELECT COUNT(*) FROM news";
$res = mysql_query($r);
if(!$res)
{
echo "Такая ошибка: ".mysql_error()."<br>";
echo $r;
exit();
}
$posts = mysql_result($res, 0);
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM news LIMIT $start, $num");
if($res)
{
while($news = mysql_fetch_array($res))
{
echo "<tr><td>".$news['date']."</td><td>".$news['ne_polnay']."</td><td><a href='news_polnay.php?id=".$news['id']."'>Читать
всю...</a></td></tr>"; // или выводить, как вам нужно
}
}
else
{
echo "Такая ошибка: ".mysql_error()."<br>";
}
?>
</table>
|
Вывод составляющих навигации тоже есть здесь | |
|
|
|
|
|
|
|
для: Makroris
(04.05.2008 в 16:03)
| |
<?
$posts = mysql_fetch_row($result);
// Замените на
list($posts) = mysql_fetch_row($result);
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(07.05.2008 в 14:20)
| | Да все с этим я разобрался.)
Всем спасибо! | |
|
|
|