Помощник
|
Прокомментировать пару непонятных мест |
people2010
|
Сообщение
#1
|
||
|
|
||
|
|||
LifeUP |
21.9.2010, 10:25;
Ответить: LifeUP
Сообщение
#2
|
|
Тут обьяснять толком нечего
1. Зачем нужна сортировка это вам виднее и автору, ненужна тупо убираете 2. Считается кол-во строк затронутых в запросе 3. Делит кол-во выбранных строк в запросе на $chislo затем округляет до целого числа 4. Например отсюда http://mysite.ru/index.php?str=home 5. Приводит данные к числовому типу 6. Формирует номера страниц 7. Проверяет есть ли str в массиве $_GET 8. Обрезает текст до 100 символов, присваивает "nomer" идентификатор "id" P.S берете гугл и вбиваете непонятные функции. |
|
|
people2010
|
Сообщение
#3
|
|
Написал так, всё равно выводит на 1-ой странице 5, а на 2 и 3 по 10.
$num_rows = ceil($num_rows/$chislo); |
|
|
Mulder_hb |
21.9.2010, 17:00;
Ответить: Mulder_hb
Сообщение
#4
|
|
О знакомый код. Жопов?
Вы на этом форуме уже полгода. За такой срок можно было уже научиться элементарным понятиям пхп... Написал так, всё равно выводит на 1-ой странице 5, а на 2 и 3 по 10. $num_rows = ceil($num_rows/$chislo); А вы включите логику и все сразу станет ясно. Я выделяю лишь ваш код: [PHP]$chislo = 5; // ЧИСЛО СООБЩЕНИЙ НА СТРАНИЦЕ $result = mysql_query("SELECT * from $table ORDER by id desc"); // СЧИТАЕМ КОЛЛИЧЕСТВО ЗАПИСЕЙ В ТАБЛИЦЕ - У МЕНЯ ИХ 20 $num_rows = mysql_num_rows($result); // А ТЕПЕРЬ СЧИТАЕМ НА СКОЛЬКО СТРАНИЦ НАМ РАЗБИТЬ ЗАПИСИ И ВЫДЕЛЯЕМ ЦЕЛОЕ ЧИСЛО $num_rows = round($num_rows/$chislo);[/PHP] Ну давайте считать вместе. $num_rows = round($num_rows/$chislo) = round(20/5); Сколько же будет 20 делить на 5? Три или четыре? Наверное, четыре. Так почему у вас выводится только три? А я вам скажу почему. Потому что вы привели говнокод, в которым рунет просто тонет. Мало того, вы просто не разбираясь скопипастили его, абсолютно не понимая, что он делает. Каждую строчку вашего кода надо переписывать заново... |
|
|
people2010
|
Сообщение
#5
|
|
Решил опробовать другой,более правильный вариант, но он у меня не сработал.
По видеоуроку попробовал написать постраничную навигацию, для теста как там было указано создал 2 таблицы: Таблица lessons.php id cat text 1 1 Петя 2 1 Фрося 3 1 Борис 4 1 Анатолий 5 1 Банан 6 1 Тарзан 7 1 Макс 8 1 Министр 9 1 Факел 10 1 Природа 11 1 Листья 12 1 Друзья 13 1 Морковь 14 1 Титаник 15 1 Мел 16 1 Натрий 17 1 Вуглевод 18 1 Кислород 19 1 Дартаньян 20 1 Поезд Таблица options.php d str 1 3 Файл database.php <?php $server = 'localhost'; //Имя сервера $user = 'privet'; //Логин $password = '12345'; //Пароль $db = 'video'; $table = 'lessons'; //Название таблицы $error_database = '<h2>Произошла ошибка в базе данных,<br/> в ближайшее время она будет устранена!</h2>'; $connect = mysql_connect($server,$user,$password); if(!$connect){ echo $error_database; exit; }; //$connect по какому соединению мы работаем $select = mysql_select_db($db,$connect); if(!$select){ echo $error_database; exit; }; ?> Код самой постраничной навигации, файл cat_view.php <?php include '../blocks/database.php'; /*Соединяемся с Базой Данных*/ $result77 = mysql_query("SELECT str FROM options", $connect); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; // Извлекаем из URL текущую страницу @$page = $_GET['page']; // Определяем общее число сообщений в базе данных $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE cat='$cat'"); $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 $result = mysql_query("SELECT id,text FROM lessons WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$connect); // Проверяем нужны ли стрелки назад 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) { 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>"; } ?> Выдаёт ошибки: Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 9 [Денвер: показать возможную причину ошибки] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\sitik.ru\www\blocks\view_cat.php on line 10 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 27 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 30 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 30 Хотя я всё сделал по инструкции,как говорилось в видеоуроке. Подскажите пож, что сделать чтоб сработало? |
|
|
Mulder_hb |
21.9.2010, 23:35;
Ответить: Mulder_hb
Сообщение
#6
|
|
|
Хотя я всё сделал по инструкции,как говорилось в видеоуроке. Посмотрели видео-урок, хорошо. А теперь включайте собственные мозги. Первое, что нужно сделать, это составить алгоритм. Возьмите листок бумаги, ручку и опишите для себя простыми человеческими фразами, что должно происходить для того, что вывести текст на несколько страниц. Сколько должно быть таблиц, какие запросы делать в бд, как формировать число страниц и его содержание. На этом этапе вам не нужно знать ни php, ни sql. Просто напишите человеческим языком, как все должно работать. Как распишите, опубликуйте его здесь. ЗЫ. Обрамляйте php-код тегами php. Так легче читать, ваш поток сознания.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
написать пару шаблонов ZennoPoster | 0 | Taylor | 6016 | 20.6.2021, 3:25 автор: Taylor |
|
sails-brm - партнёрская программ - биржа рекламных мест | 2 | alex_pnet | 1148 | 30.9.2020, 10:48 автор: alex_pnet |
|
Разыскиваю пару толковых разработчиков сайтов | 2 | vadosseo | 1621 | 14.11.2019, 20:59 автор: qpPeW |
|
Сделаю дёшево пару лэндингов | 3 | WebProf_mw | 1509 | 18.6.2019, 10:32 автор: FIvYUr |
|
Пару вопросов про push-рассылки | 12 | Zhezkazganetcs | 5152 | 12.6.2019, 8:36 автор: ExchangeRatesPro |
Текстовая версия | Сейчас: 25.4.2024, 18:18 |