|
|
|
| Добрый день!
Очень на сайтах часто можно увидеть, что при выводе данных можно регулировать количество выводимых строк.
Нижеследущий код вывод данные по 10 строк, потом идет переход на следующую страницу.
$num = $myrow77["str"]; str = 10
А как сделать, что сверху была строка "Показывать по" и в которой есть значения: 20 строк, 30, 40, 50?
<?php
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM universities WHERE id_region='$id_region'");
$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
$x = $start + 1;
$result3 = mysql_query("SELECT * FROM universities WHERE id_region='$id_region' order by advertisment DESC, logo LIMIT $start, $num", $db);
if (!$result3)
{
echo "<p>1)Запрос на выборку данных из базы не прошел.
<br> <strong>Код ошибки:</strong></p>";
}
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do
{
printf ("<p>$x. <a href='post_university.php?id_university=%s'>%s</a></p><br>
", $myrow3["id_university"], $myrow3["title"]);
$x = $x + 1;
}
while ($myrow3 = mysql_fetch_array($result3));
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=post_regions.php?id_region='.$id_region.'&page=1>Первая</a> | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page + 1) .'>Следующая</a> | <a href=post_regions.php?id_region='.$id_region.'&page=' .$total. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=post_regions.php?id_region='.$id_region.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $total) $page5right = ' | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=post_regions.php?id_region='.$id_region.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=post_regions.php?id_region='.$id_region.'&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>";
}
}
else
{
echo "<p>Раздел находится в стадии заполнения.</p>";
}
?>
|
| |
|
|
|
|
|
|
|
для: lukanuga
(08.08.2011 в 19:08)
| |
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
|
о ужас... вы завели целую таблицу для хранения одного значения?
____
нужно добавить выпадающий список
<form action="">
<select>
<option value=10>10</option>
<option value=20>20</option>
<option value=30>30</option>
<option value=40>40</option>
<option value=50>50</option>
<option value=60>60</option>
</select>
<input type="submit" value="Отправить">
</form>
|
+ написать еще обработчик | |
|
|
|
|
|
|
|
для: Valick
(08.08.2011 в 21:26)
| | спасибо.
я новичок в php.
есть примеры как написать обработчик этой формы? | |
|
|
|