Помогите пожалуйста уже сил нет, два дня бьюсь.
1 - выводит все статьи из БД на странице, хотя стоит ограничение 2 на страницу, в БД это значение хранится в таблице option поле str
2 - при переходе по навигации на 2-ю , 3-ю и тд странички выводится все та же информация, думаю что из за пункта 1.
Вот вывод на страничку index.php
PHP код:
![Выделить весь код](images/misc/selectcode.png)
<? $result13 = mysql_query("SELECT * FROM lessons ",$db); if (!$result13) { echo "<p>Запрос на выборку данных из базы не прошел! <br> <strong>Код ошибки:</strong></p>"; exit (mysql_error()); } if (mysql_num_rows ($result13)>0) { $myrow = mysql_fetch_array($result13); do { printf("<table width='350' cellpadding='0' cellspacing='0' class='lessons'> <tr> <td> <h3><a href='wiew_lessons.php?id=%s'><p>%s</p></a><p>%s</p></h3></p> <p class='lesson3'>Автор урока: %s</p> <p class='lesson3'>Дата добавления урока: %s</p> </td> <td></td> </tr> <tr> <td>%s</td> <td></td> </tr> </table>",$myrow['id'],$myrow['title'],$myrow['img'],$myrow['author'],$myrow['date'],$myrow['description']); } while ($myrow = mysql_fetch_array($result13)); } else { echo "<p>В таблице нет записей!</p>"; exit(); } ?>
Чуть ниже идет постраничная навигация:
PHP код:
![Выделить весь код](images/misc/selectcode.png)
<? $result77 = mysql_query("SELECT str FROM options", $db); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; // Извлекаем из URL текущую страницу if(isset($_GET['page'])) $page = $_GET['page']; else $page = 1; // Определяем общее число сообщений в базе данных $result00 = mysql_query("SELECT COUNT(*) FROM lessons",$db); $temp = mysql_fetch_array($result00); $posts = $temp[0]; // Находим общее число страниц $total = (($posts - 1) / $num) + 1; $total = intval($total); // Определяем начало сообщений для текущей страницы $page = intval($page); // Если значение $page меньше единицы или отрицательно // переходим на первую страницу // А если слишком большое, то переходим на последнюю if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная с какого номера // следует выводить сообщения $start = $page * $num - $num; // Выбираем $num сообщений начиная с номера $start $result14 = mysql_query("SELECT * FROM lessons ORDER BY id LIMIT $start, $num",$db); ?>
Продолжение кода.
PHP код:
![Выделить весь код](images/misc/selectcode.png)
<? // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=./index.php?page=1>Первая</a> | <a href=./index.php?page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=./index.php?page='. ($page + 1) .'>Следующая</a> | <a href=./index.php?page=' .$total. '>Последняя</a>'; // Находим две ближайшие станицы с обоих краев, если они есть if($page - 5 > 0) $page5left = ' <a href=./index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; if($page - 4 > 0) $page4left = ' <a href=./index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=./index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a href=./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | '; if($page + 5 <= $total) $page5right = ' | <a href=./index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>'; if($page + 4 <= $total) $page4right = ' | <a href=./index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=./index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; // Вывод меню если страниц больше одной if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class=\"pstrnav\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; } ?>
Вот так код нагляднее будет:
PHP код:
![Выделить весь код](images/misc/selectcode.png)
<?
$result13 = mysql_query("SELECT * FROM lessons ",$db);
if (!$result13)
{
echo "<p>Запрос на выборку данных из базы не прошел! <br> <strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows ($result13)>0)
{
$myrow = mysql_fetch_array($result13);
do
{
printf("<table width='350' cellpadding='0' cellspacing='0' class='lessons'>
<tr>
<td> <h3><a href='wiew_lessons.php?id=%s'><p>%s</p></a><p>%s</p></h3></p>
<p class='lesson3'>Автор урока: %s</p>
<p class='lesson3'>Дата добавления урока: %s</p>
</td>
<td></td>
</tr>
<tr>
<td>%s</td>
<td></td>
</tr>
</table>",$myrow['id'],$myrow['title'],$myrow['img'],$myrow['author'],$myrow['date'],$myrow['description']);
}
while ($myrow = mysql_fetch_array($result13));
}
else
{
echo "<p>В таблице нет записей!</p>";
exit();
}
?>
<? $result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM lessons",$db);
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result14 = mysql_query("SELECT * FROM lessons ORDER BY id LIMIT $start, $num",$db);
?>
<?
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=./index.php?page=1>Первая</a> | <a href=./index.php?page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=./index.php?page='. ($page + 1) .'>Следующая</a> | <a href=./index.php?page=' .$total. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=./index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=./index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=./index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $total) $page5right = ' | <a href=./index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=./index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=./index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
?>