Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Пожалуйста помогите новичку в постраничной навигации
 
 автор: romanych12   (21.03.2010 в 23:44)   письмо автору
 
 

Доброй ночи!
Есть сайт, с базой данных. В базе хранятся 3 таблицы, таблица lessons, article и settings. Соответственно есть две страницы на сайте, страница добавления урока и страница добавления статьи.Как в моем случае, организовать постраничную навигацию на странице Уроки и на странице Статьи? По мере добавления статьи или урока в базу данных, их становится много, поэтому необходимо организовать постраничную навигацию.
Буду признателен за помощь :)

  Ответить  
 
 автор: neadekvat   (21.03.2010 в 23:58)   письмо автору
 
   для: romanych12   (21.03.2010 в 23:44)
 

Много тем можно найти в поиске

  Ответить  
 
 автор: Рома   (22.03.2010 в 00:12)   письмо автору
 
   для: romanych12   (21.03.2010 в 23:44)
 

может выложите коды? а там доработаем.

  Ответить  
 
 автор: romanych12   (06.04.2010 в 16:38)   письмо автору
 
   для: Рома   (22.03.2010 в 00:12)
 

таблица articles необходимо, чтобы на этой странице выводилось хотя бы по пять десять уроков
<?php
include ("blocks/bd.php");/*Соединяемся с базой данных*/
$result = mysql_query("SELECT title,meta_d,meta_k,text From settings WHERE page='articles'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<? include("blocks/header.php"); ?>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td width="1081" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo $myrow['text']; ?>
<?php
$result = mysql_query ("SELECT id,title,description,author,date FROM article",$db);
$myrow = mysql_fetch_array ($result);


do {

printf ("<table align='center' class='lessons'>

<tr>
<td class='lessons_title'><p class='lessons_name'><a href='view_articles.php?id=%s'>%s</a>
</p>
<p class='lessons_adds'>Дата добавления: %s</p>
<p class='lessons_adds'>Автор статьи: %s</p></td>
</tr>

<tr>
<td>%s</td>
</tr>

</table><br><br>",$myrow["id"],$myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]);

}
while ($myrow = mysql_fetch_array ($result));
?>


<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>

  Ответить  
 
 автор: romanych12   (06.04.2010 в 16:42)   письмо автору
 
   для: romanych12   (06.04.2010 в 16:38)
 

Таблица lessons, тоже по 5-10 статей на странице
<?php
include ("blocks/bd.php");/*Соединяемся с базой данных*/
$result = mysql_query("SELECT title,meta_d,meta_k,text From settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<? include("blocks/header.php"); ?>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td width="1081" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo $myrow['text']; ?>



<?php
$result = mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);
$myrow = mysql_fetch_array ($result);





do
{


printf ("<table align='center' class='lessons'>

<tr>
<td class='lessons_title'><p class='lessons_name'><a href='view_lessons.php?id=%s'>%s</a>
</p>
<p class='lessons_adds'>Дата добавления: %s</p>
<p class='lessons_adds'>Автор урока: %s</p></td>
</tr>

<tr>
<td>%s</td>
</tr>

</table><br><br>",$myrow["id"],$myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"], $r);

}
while ($myrow = mysql_fetch_array ($result));
?>


<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>

  Ответить  
 
 автор: Slo_Nik   (06.04.2010 в 18:06)   письмо автору
 
   для: romanych12   (06.04.2010 в 16:42)
 

а где Ваши попытки сделать постраничную навигацию?

офрмляйте код в сообщении тегами [code]

http://www.softtime.ru/info/articlephp.php?id_article=33

  Ответить  
 
 автор: romanych12   (06.04.2010 в 19:35)   письмо автору
 
   для: Slo_Nik   (06.04.2010 в 18:06)
 

Пример моей работы можно посмотреть здесь, но здесь без кода постраничной навигации. http://romanych57.jino.ru/index.php
Пишет такое сообщение: Fatal error: Unsupported operand types in Z:\home\localhost\www\mysite\lessons.php on line 36

<?php
include ("blocks/bd.php");/*Соединяемся с базой данных*/
$result = mysql_query("SELECT title,meta_d,meta_k,text From settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<? include("blocks/header.php"); ?>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td width="1081" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo $myrow['text']; ?>
<?php
// Устанавливаем соединение с базой данных
include "blocks/bd.php";
// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM lessons");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$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 lessons LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>
<?php
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['name']."</td>
<td>".$postrow[$i]['time']."</td></tr>
<tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
}
echo "</table>";
?>
<?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
<a href= ./page?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
<a href= ./page?page=' .$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

?>
<?php
$result = mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);
$myrow = mysql_fetch_array ($result);

do
{

printf ("<table align='center' class='lessons'>

<tr>
<td class='lessons_title'><p class='lessons_name'><a href='view_lessons.php?id=%s'>%s</a>
</p>
<p class='lessons_adds'>Дата добавления: %s</p>
<p class='lessons_adds'>Автор урока: %s</p></td>
</tr>

<tr>
<td>%s</td>
</tr>

</table><br><br>",$myrow["id"],$myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"], $r);
}
while ($myrow = mysql_fetch_array ($result));
?>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>

  Ответить  
 
 автор: Slo_Nik   (06.04.2010 в 20:46)   письмо автору
 
   для: romanych12   (06.04.2010 в 19:35)
 

ОФРМЛЯЙТЕ КОД В СООБЩЕНИИ ТЕГАМИ [CODE][/CODE]

>Пишет такое сообщение: Fatal error: Unsupported operand types in Z:\home\localhost\www\mysite\lessons.php on line 36

Fatal error: Неподдерживаемые типы операндов вZ:\home\localhost\www\mysite\lessons.php on line 36
в самом верху скрипта впишите error_reporting(E_ALL); посмотрите, что покажет. этим Вы выставите уровень ошибок, будут показаны все ошибки, предупреждения и т.п.

  Ответить  
 
 автор: romanych12   (06.04.2010 в 22:15)   письмо автору
 
   для: Slo_Nik   (06.04.2010 в 20:46)
 


<?php
include ("blocks/bd.php");/*Соединяемся с базой данных*/
$result mysql_query("SELECT title,meta_d,meta_k,text From settings WHERE page='lessons'",$db);
$myrow mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<? include("blocks/header.php"); ?>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td width="1081" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo $myrow['text']; ?>
<?php
// Устанавливаем соединение с базой данных
include "blocks/bd.php";
// Переменная хранит число сообщений выводимых на станице
$num 25;
// Извлекаем из URL текущую страницу
$page $_GET['page'];
// Определяем общее число сообщений в базе данных
$result mysql_query("SELECT COUNT(*) FROM lessons");
$posts mysql_fetch_row($result);
// Находим общее число страниц
$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 lessons LIMIT $start$num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>
<?php
echo "<table>";
for(
$i 0$i $num$i++)
{
echo 
"<tr>
<td>"
.$postrow[$i]['name']."</td>
<td>"
.$postrow[$i]['time']."</td></tr>
<tr><td colspan=\"2\">"
.$postrow[$i]['text']."</td></tr>";
}
echo 
"</table>";
?>
<?php
// Проверяем нужны ли стрелки назад
if ($page != 1$pervpage '<a href= ./page?page=1><<</a>
<a href= ./page?page='
. ($page 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total$nextpage ' <a href= ./page?page='. ($page 1) .'>></a>
<a href= ./page?page=' 
.$total'>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page 0$page2left ' <a href= ./page?page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left '<a href= ./page?page='. ($page 1) .'>'. ($page 1) .'</a> | ';
if(
$page <= $total$page2right ' | <a href= ./page?page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $total$page1right ' | <a href= ./page?page='. ($page 1) .'>'. ($page 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

?>
<?php
$result 
mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);
$myrow mysql_fetch_array ($result);

do
{

printf ("<table align='center' class='lessons'>

<tr>
<td class='lessons_title'><p class='lessons_name'><a href='view_lessons.php?id=%s'>%s</a>
</p>
<p class='lessons_adds'>Дата добавления: %s</p>
<p class='lessons_adds'>Автор урока: %s</p></td>
</tr>

<tr>
<td>%s</td>
</tr>

</table><br><br>"
,$myrow["id"],$myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"], $r);
}
while (
$myrow mysql_fetch_array ($result));
?>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>

  Ответить  
 
 автор: Slo_Nik   (06.04.2010 в 23:06)   письмо автору
 
   для: romanych12   (06.04.2010 в 22:15)
 

Зачем Вы два раза подключаете один и тот же файл, для соединения с базой данных?
и уровень ошибок Вы не выставили

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования