|
Автор |
Сообщение |
Doomer
Зарегистрирован: 24.10.2009 Сообщения: 1
|
|
|
|
PHP5/6 и MySql 6 разработка web-приложения
Купил позавчера, вот уже половину прочел.Благодарность автору. Очень грамотно написано. Подчеркнул уже некоторые тонкости для себя, которые сам не знал =)
Хочу пожелать творческих успехов автору, чтобы дальше нас радовал хорошей рукописью)) |
|
Вернуться к началу |
|
|
Амир
Участник тусовки
Зарегистрирован: 21.07.2009 Сообщения: 135
|
|
|
|
Собственно, именно в этой книге была система автообъявлений, вот мое решение для пагинации, может кому пригодится, а кто то усовершенствует
Цитата: |
<?php
require "config.php";
//к серверу БД
mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die ('errrr');
// Переменная хранит число сообщений выводимых на станице
$num = 10;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM info WHERE 1");
$rgPosts = mysql_fetch_row($result);
$posts=$rgPosts[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 info ORDER BY id DESC LIMIT $start, $num");
// $result = mysql_query("SELECT * FROM info LIMIT $start, $num"); если нужен вывод с первой по дате, то эта строка
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0; $i < $num; $i++);
function show_cars($q)
{
$r = mysql_query($q);
$html = "<table border=0 width=100%>";
while ($row=mysql_fetch_array($r)) {
$html .= "<tr>";
$image = "<img src=no_photo.gif>";
if ($row[photo]!=="") {
$photo = "sales/thum_" . basename($row[photo]);
$image="<img width=100 height=67 src=$photo>";
};
$html .= "<td width=10%>$image<td>";
$html .= "<td>$postrow[$i]$row[marka] $postrow[$i]$row[model] '$postrow[$i]$row[year]
<br><strong>$postrow[$i]$row[ID]</strong>
<br>$postrow[$i]$row[color]
<br>$postrow[$i]$row[run] км
<br><b>$postrow[$i]$row[price]</b>
<br>$postrow[$i]$row[phone1]
<br><a href=show_car.php?id=$row[ID]>Подробнее</a>";
$html .= "</tr>";
}
$html .= "</table>";
return $html;
}
$q = "SELECT * FROM info ORDER BY id DESC LIMIT $start, $num";
$RESULTS = show_cars($q);
echo $RESULTS;
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./sales.php?page=1><<</a>
<a href= ./sales.php?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./sales.php?page='. ($page + 1) .'>></a>
<a href= ./sales.php?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./sales.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./sales.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./sales.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./sales.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
?>
|
упс, чуть не забыл, код сильно изменен, но вполне узнаваем, просто не нравится мне шаблонизатор |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Doomer, Амир, спасибо! |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
|
|
 Главная страница сайта
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|