PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: постраничная навигация
Поиск в теме | Версия для печати
iceman
Отправлено: 11 Октября, 2009 - 23:37:13
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
[+][+]
PHP:
скопировать код в буфер обмена
<?PHP
/*здесь подключение базы данных с файла db.php */
include ( "blocks/bd.php" ) ;
/*вытаскивает все данные из базы данных по колонках, с базы по имени rech страница WHERE page='rechept', так названа база данных*/
$r = mysql_query ( "SELECT id, title, meta_d, meta_k, date, discription, author FROM rech" , $db ) ; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="description" content="<?PHP echo $m [ 'meta_d' ] ; ?> "><meta name="keywords" content="<?PHP echo $m [ 'meta_k' ] ; ?> ">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?PHP echo $m [ 'title' ] ; ?> </title>
<link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {font-size: 10}
-->
</style>
</head>
<body>
<table width="1024" border="1" align="center" cellpadding="0" cellspacing="0" class="main_border">
<!--вставить шапку в страницу-->
<?PHP include ( "blocks/header.php" ) ; ?>
<tr>
<!--вставить навигационный блок-->
<?PHP include ( "blocks/navigat.php" ) ; ?>
<!--информационный конект блок-->
<td width="800" align="left" valign="top" bgcolor="#FFFFFF">
<?PHP
echo <<<head
<table border="0" width="100%" class="static_table">
<tr>
<td valign="top">
<p><img src="pic/88.gif" alt="красный крест" hspace="5" vspace="5" align="left"><strong>Целебные свойства растительного мира и народной
медицины удивительны и неисчерпаемы.
К сожалению, мы часто забываем об этом
чудесном даре природы и не используем
рецепты народной медицины в полной мере
для сохранения и укрепления своего здоровья. </p><img src="pic/80.gif" alt="красный крест" hspace="5" vspace="5" align="right"><p>
Лечение, основанное на применении знаний,
которые дает народная медицина, берет свое
начало в глубокой древности. Первые письменные
сведения о целебных травах и народных методах
лечения встречаются в источниках, датируемых
пятым тысячелетием до нашей эры.<br>
</p>
</td>
</tr>
</table>
head ;
?>
<?PHP
do {
printf ( "<table align='center' class='lesson'> <tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='rechepn.php?id=%s '>%s </a></p>
<p class='lesson_ads'>дата добавления: %s </p>
<p class='lesson_ads'>автор рецепта %s </p>
</td>
</tr>
<tr>
<td>%s </td>
</tr>
</table>" ,
$m [ "id" ] , $m [ "title" ] , $m [ "date" ] , $m [ "author" ] , $m [ "discription" ] ) ;
}
?>
<!--здесь размещен материал по главной странице сайта, или контент главной страницы--> </td>
</tr>
<?PHP include ( "blocks/footer.php" ) ; ?>
</table>
</body>
</html>
страница работает но не могу найти как вставить код постраничной навигации для этой страницы
[i](Добавление)[/i]
<?
$result77 = mysql_query ( "SELECT str FROM options" , $db ) ; $num = $myrow77 [ "str" ] ;
// Извлекаем из URL текущую страницу
@ $page = $_GET [ 'page' ] ;
// Определяем общее число сообщений в базе данных
$result00 = mysql_query ( "SELECT COUNT(*) FROM data WHERE cat='$cat '" ) ; $posts = $temp [ 0] ;
// Находим общее число страниц
$total = ( ( $posts - 1) / $num ) + 1 ;
// Определяем начало сообщений для текущей страницы
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if ( empty ( $page ) or
$page < 0
) $page = 1 ; if ( $page > $total ) $page = $total ;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num ;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query ( "SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat ' ORDER BY id LIMIT $start , $num " , $db ) ; ?>
<?
// Проверяем нужны ли стрелки назад
if ( $page != 1) $pervpage = '<a href=view_cat.php?cat=' . $cat . '&page=1>Первая</a> | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 1 ) . '>Предыдущая</a> | ' ;
// Проверяем нужны ли стрелки вперед
if ( $page != $total ) $nextpage = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 1 ) . '>Следующая</a> | <a href=view_cat.php?cat=' . $cat . '&page=' . $total . '>Последняя</a>' ;
// Находим две ближайшие станицы с обоих краев, если они есть
if ( $page - 5 > 0) $page5left = ' <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 5 ) . '>' . ( $page - 5 ) . '</a> | ' ;
if ( $page - 4 > 0) $page4left = ' <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 4 ) . '>' . ( $page - 4 ) . '</a> | ' ;
if ( $page - 3 > 0) $page3left = ' <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 3 ) . '>' . ( $page - 3 ) . '</a> | ' ;
if ( $page - 2 > 0) $page2left = ' <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 2 ) . '>' . ( $page - 2 ) . '</a> | ' ;
if ( $page - 1 > 0) $page1left = '<a href=view_cat.php?cat=' . $cat . '&page=' . ( $page - 1 ) . '>' . ( $page - 1 ) . '</a> | ' ;
if ( $page + 5 <= $total ) $page5right = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 5 ) . '>' . ( $page + 5 ) . '</a>' ;
if ( $page + 4 <= $total ) $page4right = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 4 ) . '>' . ( $page + 4 ) . '</a>' ;
if ( $page + 3 <= $total ) $page3right = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 3 ) . '>' . ( $page + 3 ) . '</a>' ;
if ( $page + 2 <= $total ) $page2right = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 2 ) . '>' . ( $page + 2 ) . '</a>' ;
if ( $page + 1 <= $total ) $page1right = ' | <a href=view_cat.php?cat=' . $cat . '&page=' . ( $page + 1 ) . '>' . ( $page + 1 ) . '</a>' ;
// Вывод меню если страниц больше одной
if ( $total > 1)
{
echo "<div class=\" pstrnav\" >" ;
echo $pervpage . $page5left . $page4left . $page3left . $page2left . $page1left . '<b>' . $page . '</b>' . $page1right . $page2right . $page3right . $page4right . $page5right . $nextpage ;
echo "</div>" ;
}
?>
Отредактировано администратором: EuGen, 13 Октября, 2009 - 07:01:46
Платинум
Отправлено: 12 Октября, 2009 - 16:33:44
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Апр. 2009
Откуда: Пермь
Помог: 0 раз(а)
iceman пишет: $result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);
После этого надо выводить контент!
PHP:
скопировать код в буфер обмена
<?PHP
do {
printf ( "<table align='center' class='lesson'> <tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='rechepn.php?id=%s '>%s </a></p>
<p class='lesson_ads'>дата добавления: %s </p>
<p class='lesson_ads'>автор рецепта %s </p>
</td>
</tr>
<tr>
<td>%s </td>
</tr>
</table>" ,
$m [ "id" ] , $m [ "title" ] , $m [ "date" ] , $m [ "author" ] , $m [ "discription" ] ) ;
}
?>
И потом тока уже проверка на стрелки вперед назад... итд...
И все это вам надо разместить между тегами <body></body>(Отредактировано автором: 12 Октября, 2009 - 16:36:40)
iceman
Отправлено: 12 Октября, 2009 - 23:37:29
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
[+][+]
PHP:
скопировать код в буфер обмена
<?PHP
/*здесь подключение базы данных с файла db.php */
include ( "blocks/bd.php" ) ;
/*вытаскивает все данные из базы данных по колонках, с базы по имени rech страница WHERE page='rechept', так названа база данных*/
$r = mysql_query ( "SELECT id, title, meta_d, meta_k, date, discription, author FROM rech" , $db ) ; таблица rech имеет id
, саt
( столбец имеет значение 1
) title
, meta_d
, meta_k
, date , discription
, author text
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="description" content="<?PHP echo $me [ 'meta_d' ] ; ?> ">
<meta name="keywords" content="<?PHP echo $me [ 'meta_k' ] ; ?> ">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?PHP echo $me [ 'title' ] ; ?> </title>
<link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {font-size: 10}
-->
</style>
</head>
<body>
<table width="1024" border="1" align="center" cellpadding="0" cellspacing="0" class="main_border">
<!--вставить шапку в страницу-->
<?PHP include ( "blocks/header.php" ) ; ?>
<tr>
<!--вставить навигационный блок-->
<?PHP include ( "blocks/navigat.php" ) ; ?>
<!--информационный конект блок-->
<td width="800" align="left" valign="top" bgcolor="#FFFFFF">
<?PHP
echo <<<head
<table border="0" width="100%" class="static_table">
<tr>
<td valign="top">
<p><img src="pic/88.gif" alt="красный крест" hspace="5" vspace="5" align="left"><strong>Целебные свойства растительного мира и народной
медицины удивительны и неисчерпаемы.
К сожалению, мы часто забываем об этом
чудесном даре природы и не используем
рецепты народной медицины в полной мере
для сохранения и укрепления своего здоровья. </p><img src="pic/80.gif" alt="красный крест" hspace="5" vspace="5" align="right"><p>
Лечение, основанное на применении знаний,
которые дает народная медицина, берет свое
начало в глубокой древности. Первые письменные
сведения о целебных травах и народных методах
лечения встречаются в источниках, датируемых
пятым тысячелетием до нашей эры.<br>
</p>
</td>
</tr>
</table>
head ;
?>
<?PHP
$result77 = mysql_query ( "SELECT str FROM options" , $db ) ; $num = $myrow77 [ "str" ] ;
// Извлекаем из URL текущую страницу
@ $page = $_GET [ 'page' ] ;
// Определяем общее число сообщений в базе данных
$result00 = mysql_query ( "SELECT COUNT(*) FROM rech WHERE cat='$cat '" ) ; ошибку в этой строке
$posts = $temp [ 0] ;
// Находим общее число страниц
$total = ( ( $posts - 1) / $num ) + 1 ;
// Определяем начало сообщений для текущей страницы
// Если значение $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 rech WHERE cat='$cat ' ORDER BY id LIMIT $start , $num " , $db ) ; ошибка в этой строке
do {
printf ( "<table align='center' class='lesson'> <tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='rechepn.php?id=%s '>%s </a></p>
<p class='lesson_ads'>дата добавления: %s </p>
<p class='lesson_ads'>автор рецепта %s </p>
</td>
</tr>
<tr>
<td>%s </td>
</tr>
</table>" ,
$m [ "id" ] ,
$m [ "title" ] ,
$m [ "date" ] ,
$m [ "author" ] ,
$m [ "discription" ] ) ;
}
?>
<?PHP
// Проверяем нужны ли стрелки назад. имя файла где пишется код = rechept.php
if ( $page != 1) $pervpage = '<a href=rechept.php?cat=' . $cat . '&page=1>Первая</a> | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 1 ) . '>Предыдущая</a> | ' ;
// Проверяем нужны ли стрелки вперед
if ( $page != $total ) $nextpage = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 1 ) . '>Следующая</a> | <a href=rechept.php?cat=' . $cat . '&page=' . $total . '>Последняя</a>' ;
// Находим две ближайшие станицы с обоих краев, если они есть
if ( $page - 5 > 0) $page5left = ' <a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 5 ) . '>' . ( $page - 5 ) . '</a> | ' ;
if ( $page - 4 > 0) $page4left = ' <a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 4 ) . '>' . ( $page - 4 ) . '</a> | ' ;
if ( $page - 3 > 0) $page3left = ' <a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 3 ) . '>' . ( $page - 3 ) . '</a> | ' ;
if ( $page - 2 > 0) $page2left = ' <a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 2 ) . '>' . ( $page - 2 ) . '</a> | ' ;
if ( $page - 1 > 0) $page1left = '<a href=rechept.php?cat=' . $cat . '&page=' . ( $page - 1 ) . '>' . ( $page - 1 ) . '</a> | ' ;
if ( $page + 5 <= $total ) $page5right = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 5 ) . '>' . ( $page + 5 ) . '</a>' ;
if ( $page + 4 <= $total ) $page4right = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 4 ) . '>' . ( $page + 4 ) . '</a>' ;
if ( $page + 3 <= $total ) $page3right = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 3 ) . '>' . ( $page + 3 ) . '</a>' ;
if ( $page + 2 <= $total ) $page2right = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 2 ) . '>' . ( $page + 2 ) . '</a>' ;
if ( $page + 1 <= $total ) $page1right = ' | <a href=rechept.php?cat=' . $cat . '&page=' . ( $page + 1 ) . '>' . ( $page + 1 ) . '</a>' ;
// Вывод меню если страниц больше одной
if ( $total > 1)
{
echo "<div class=\" pstrnav\" >" ;
echo $pervpage . $page5left . $page4left . $page3left . $page2left . $page1left . '<b>' . $page . '</b>' . $page1right . $page2right . $page3right . $page4right . $page5right . $nextpage ;
echo "</div>" ;
}
?>
<!--здесь размещен материал по главной странице сайта, или контент главной страницы--> </td>
</tr>
<?PHP include ( "blocks/footer.php" ) ; ?>
</table>
</body>
</html>
вот сделал так
[i](Добавление)[/i]
$result00 = mysql_query("SELECT COUNT(*) FROM rech WHERE cat='$cat'");
Notice: Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 63
$result = mysql_query("SELECT * FROM rech WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);
Notice: Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 80
if ($page != 1) $pervpage = '<a href=rechept.php?cat='.$cat.'&page=1>Первая</a> | <a href=rechept.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 105
(Добавление)
Помогите пожалуйста
Отредактировано модератором: Champion, 13 Октября, 2009 - 09:32:04 Попросили же тебя. Будешь так делать прогоним
JustUserR
Отправлено: 13 Октября, 2009 - 08:13:11
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Цитата: // Находим две ближайшие станицы с обоих краев, если они есть
А вот этот страшный код со страницами нельзя в цикл запихнуть от -5 до 5 ?
И к слову количетсво записей в базе можно узнать с помощью count
-----Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB