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

Форум PHP

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

 

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

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

тема: DreamWeaver и постраничная навигация. ?
 
 автор: oven   (22.02.2007 в 09:18)   письмо автору
 
 

Подскажите, кто знает, как в DreamWeaver можно реализовать на PHP и MySQL постраничную навигацию такого типа: если страниц много - << < | 21 | 22 | 23 | 24.......30 | > >>, что бы выводилось по 10 ссылок и ссылки на первую и на последнюю. Как сделать вывод нужного количества и ссылки вперед, назад, на первую, на последнюю - я разобрался. А вот как по страницам ссылки сделать - не знаю.
И еще, что бы статьи отображались не полностью, а начало, несколько строк и ссылка "подробнее".
Вот код, который сгенерировал DW.

<?php require_once('Connections/conn_aries.php'); ?>
<?php
$maxRows_testconn = 10;
$pageNum_testconn = 0;
if (isset($_GET['pageNum_testconn'])) {
$pageNum_testconn = $_GET['pageNum_testconn'];
}
$startRow_testconn = $pageNum_testconn * $maxRows_testconn;

mysql_select_db($database_conn_aries, $conn_aries);
$query_testconn = "SELECT hometest.body FROM hometest";
$query_limit_testconn = sprintf("%s LIMIT %d, %d", $query_testconn, $startRow_testconn, $maxRows_testconn);
$testconn = mysql_query($query_limit_testconn, $conn_aries) or die(mysql_error());
$row_testconn = mysql_fetch_assoc($testconn);

if (isset($_GET['totalRows_testconn'])) {
$totalRows_testconn = $_GET['totalRows_testconn'];
} else {
$all_testconn = mysql_query($query_testconn);
$totalRows_testconn = mysql_num_rows($all_testconn);
}
$totalPages_testconn = ceil($totalRows_testconn/$maxRows_testconn)-1;
?><form action="" method="get">
<p>
<?php do { ?>
<?php echo $row_testconn['body']; ?>
<?php } while ($row_testconn = mysql_fetch_assoc($testconn)); ?>
</p>
</form>
<?php
mysql_free_result($testconn);
?>

Я новичек в этом деле и буду рад если ответы будут с коментариями.
Буду очень признателен, тем кто поможет!

   
 
 автор: Disable   (22.02.2007 в 09:46)   письмо автору
 
   для: oven   (22.02.2007 в 09:18)
 

Брось ты это дело, программирование это искусство, его придумали люди :)
Ни к чему поручать это дело машине :)

   
 
 автор: oven   (22.02.2007 в 10:17)   письмо автору
 
   для: Disable   (22.02.2007 в 09:46)
 

Подскажите тогда как это сделать без DW.

   
 
 автор: cheops   (22.02.2007 в 13:05)   письмо автору
 
   для: oven   (22.02.2007 в 10:17)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044.

   
 
 автор: oven   (24.02.2007 в 10:54)   письмо автору
 
   для: cheops   (22.02.2007 в 13:05)
 

Здравствуйте.
Воспользовался кодом постраничной навигации из вот этой статьи http://www.softtime.ru/info/articlephp.php?id_article=33
В результате статьи выводятся, но нет постраничной навигации и есть сообщения об ошибках.

1. Notice: Undefined index: page in z:\home\test\www\5.php on line 10
// Извлекаем из URL текущую страницу
$page = $_GET['page'];

2. Notice: Undefined variable: pervpage in z:\home\test\www\5.php on line 54
Notice: Undefined variable: page2left in z:\home\test\www\5.php on line 54
Notice: Undefined variable: page1left in z:\home\test\www\5.php on line 54
Notice: Undefined variable: page1right in z:\home\test\www\5.php on line 54
Notice: Undefined variable: page2right in z:\home\test\www\5.php on line 54
Notice: Undefined variable: nextpage in z:\home\test\www\5.php on line 54
// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

И еще надо изменить $posts = mysql_fetch_row($result); на $posts = mysql_num_rows($result); а то совсем не работает. (прочитал здесь http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044 )

Сам код:
1 <?php
2 @mysql_connect('localhost', 'test', '1977')
3 or die("Can't connect to Database. <br>MySQL answer: ".mysql_error());
4 @mysql_select_db('testhome')
5 or die("Can't connect to Database. <br>MySQL answer: ".mysql_error());
6 //
7 // Переменная хранит число сообщений выводимых на станице
8 $num = 3;
9 // Извлекаем из URL текущую страницу
10 $page = $_GET['page'];
11 // Определяем общее число сообщений в базе данных
12 $result = mysql_query("SELECT COUNT(*) FROM home");
13 $posts = mysql_num_rows($result);
14 // Находим общее число страниц
15 $total = intval(($posts - 1) / $num) + 1;
16 / / Определяем начало сообщений для текущей страницы
17 $page = intval($page);
18 // Если значение $page меньше единицы или отрицательно
19 // переходим на первую страницу
20 // А если слишком большое, то переходим на последнюю
21 if(empty($page) or $page < 0) $page = 1;
22 if($page > $total) $page = $total;
23 // Вычисляем начиная к какого номера
24 // следует выводить сообщения
25 $start = $page * $num - $num;
26 // Выбираем $num сообщений начиная с номера $start
27 $result = mysql_query("SELECT * FROM home LIMIT $start, $num");
28 // В цикле переносим результаты запроса в массив $postrow
29 while ( $postrow[] = mysql_fetch_array($result))
30
31 echo "<table>";
32 for($i = 0; $i < $num; $i++)
33 {
34 echo "<tr>
35 <td>".$postrow[$i]['time']."</td></tr>
36 <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
37 }
38 echo "</table>";
39
40 // Проверяем нужны ли стрелки назад
41 if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
42 <a href= ./page?page='. ($page - 1) .'><</a> ';
43 // Проверяем нужны ли стрелки вперед
44 if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
45 <a href= ./page?page=' .$total. '>>></a>';
46
47 // Находим две ближайшие станицы с обоих краев, если они есть
48 if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
49 if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
50 if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
51 if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
52
53 // Вывод меню
54 echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
55
56 ?>

   
 
 автор: oven   (24.02.2007 в 16:35)   письмо автору
 
   для: oven   (24.02.2007 в 10:54)
 

Ребята, ну посмотрите пожалуйста код, что выше, что не так там, почему не работает?

   
Rambler's Top100
вверх

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