PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 24
XXI Отправлено: 15 Апреля, 2012 - 17:07:43 • Тема: Адресная строка • Форум: Вопросы новичков

Ответов: 3
Просмотров: 391
# - ссылается на id в как-либо элементе страницы.(site.ru/kat/#main перейдёт сразу к элементу с id=main)
& - разделяет GET запрос начинающийся с ?.(site.ru/?name=Dmitry&subname=Medwedew)
XXI Отправлено: 12 Апреля, 2012 - 19:38:14 • Тема: Движок • Форум: CMS и фреймворки

Ответов: 174
Просмотров: 47705
MBmusic пишет:
чето опять не могу зайти в админку......пишу админ, админ и ничего не происходит

Вот, вот... у меня тоже самое
XXI Отправлено: 12 Апреля, 2012 - 00:36:48 • Тема: Решил поменять структуру MVC • Форум: Объектно-ориентированное программирование

Ответов: 24
Просмотров: 5009
Закатив глазки Я это делал с туевой кучей ифов хД
XXI Отправлено: 12 Апреля, 2012 - 00:15:20 • Тема: Движок • Форум: CMS и фреймворки

Ответов: 174
Просмотров: 47705
Посмотрел на денвере. Оформление нормальное, функционал... для портфолио сойдёт.
Не получилось залогиниться... снёс код защиты панели, чтобы посмотреть её Растерялся
XXI Отправлено: 11 Апреля, 2012 - 23:53:24 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Ниндзя Может быть, может быть...
XXI Отправлено: 11 Апреля, 2012 - 23:47:18 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Это поменяй
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content LIMIT {$start}, {$last}");

На это
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content ORDER BY id DESC LIMIT {$start}, {$last}");

Вроде так... Закатив глазки
(Добавление)
netwixell пишет:
меня никогда не устроит ситуация которая есть на текущий момент

Ха-ха Вы правы
XXI Отправлено: 11 Апреля, 2012 - 23:36:57 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Растерялся Так это всё, что вы хотели?
XXI Отправлено: 11 Апреля, 2012 - 23:14:27 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Цитата:
и увеличиваются от переаолнения страници статьями

Это как?
XXI Отправлено: 11 Апреля, 2012 - 22:54:32 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
И так, я сейчас каждую строку разжую.

Выборка статей будет происходить постранично, поэтому для начала определим с какого по какой материал надо выводить, а не выберем.
То есть вашу выборку пока-что отбросим.
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content", $dbconect);
  2. $pagedata = mysql_fetch_array($dbdata);

Ставим значение статей на страницу - $num равное 10.

Функция mysql_num_rows определяет сколько записей возвращает запрос.
Если у вас 12 записей в таблице, то $count = 12(Это даст нам запрос)

Делим на $num(статей на страницу) и таким образом узнаём сколько у нас будет страниц.
А функция ceil сокращает число до целого(было 3.2, а стало 3, было 3.5, а стало 4).

С помощью $_GET мы вынимаем значение из url вида site.ru/?page=23, то есть $_GET['page'] = 23, если у вас нет значения ?page в адресе(например просто site.ru), то ставиться значение 1(первая страница);
PHP:
скопировать код в буфер обмена
  1. $page = isset($_GET['page']) ? $_GET['page'] : 1;

Здесь мы умножаем нашу страницу($_GET['page']) на макс кол-во записей на странице и отнимаем от значения кол-во записей на страницу. Зачем? Ну вот если у нас 1 страницу, то будет (1 * 10) - 10 = 0 (берём записи из базы с 1), (23 * 10) - 10 = 220(берём записи с 220 статьи)

Параметр ласт похоже можно опустить... Вместо него просто $num.

Теперь вернёмся к нашему запрос
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content LIMIT {$start}, {$num}");

Он выбирает из базы статьи начиная с 0 10 штук(если первая страница). То есть у LIMIT первое значение с какой страницы выводить, а второе сколько брать.
С циклом надеюсь всё понятно. А если нет, то он перебирает все 10(если макс. кол-во записей на страницу 10) записей и выводит с тем кодом что внутри(Сам while работает по принципу - "Пока верно значение - я буду работать").
PHP:
скопировать код в буфер обмена
  1. <? while($rows = mysql_fetch_array($dbdata)){?>
  2. <?=$rows['id'];?> <?=$rows['title'];?>
  3. <?}

Насчёт for который выводит пагинатор.
Всё просто. for выполняется пока не совпадёт с $count >= $i($count больше или равно $i). То есть 23 записи делим на 10 будет 2 страницы(ВТФ). Цикл делает 2 ссылки на страницы.
PHP:
скопировать код в буфер обмена
  1. <? for($i = 1; $count >= $i; $i++){?>
  2.         <a href="/?page=<?=$i;?>"><?=$i;?></a>
  3. <?}?>

(Добавление)
Вот переписал ваш код чуток, должно всё работать... и большая просьба - НЕ МЕНЯТЬ НИЧЕГО МЕСТАМИ!
PHP:
скопировать код в буфер обмена
  1. <? session_start(); ?>
  2.  
  3. <? include("db_conect.php");
  4. $num = 10;
  5. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  6. $start = ($page * $num) - $num;
  7. $dbdata = mysql_query("SELECT * FROM content LIMIT {$start}, {$last}");
  8. $count = mysql_num_rows(mysql_query("SELECT * FROM content"));
  9. $count = ceil($count/$num);
  10. ?>
  11. <? include("head.php");?>
  12. <? while($pagedata = mysql_fetch_array($dbdata)){
  13.  
  14. do{
  15.         printf("
  16.        <a href='newtmpl.php?id=%s'>%s</a>%s
  17.        <div align='right'>
  18.        <a href='newtmpl.php?id=%s'>Подробнее</a> | Автор: %s | Дата добавления: %s | Коментариев: %s
  19.        </div>
  20.        ",
  21.         $pagedata["id"],$pagedata["title"],$pagedata["introtext"],$pagedata["id"],$pagedata["autor"],$pagedata["date"],$pagedata["views"]);
  22. } while($pagedata = mysql_fetch_array($dbdata));
  23. }?>
  24. <? for($i = 1; $count >= $i; $i++){?>
  25.         <a href="/?page=<?=$i;?>"><?=$i;?></a>
  26.         <?}?>
  27.  
  28. <? include("foot.php"); ?>
XXI Отправлено: 11 Апреля, 2012 - 21:23:16 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
netwixell пишет:
иза тупизны автора

Если так думать, то ничего не получится!
XXI Отправлено: 11 Апреля, 2012 - 20:42:10 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content"); // Узнаём о кол-ве материалов в базе данных, и забиваем в переменную
  2. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  3. $start = ($page * $num) - $num;
  4. $last = $num;

Блин перелапатили мне весь код хД, вот это заменить на
PHP:
скопировать код в буфер обмена
  1. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  2. $start = ($page * $num) - $num;
  3. $last = $num;
  4. $dbdata = mysql_query("SELECT * FROM content LIMIT {$start}, {$last}");
XXI Отправлено: 11 Апреля, 2012 - 19:58:29 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Не понял Почему у меня работает, а у вас не выводиться?
XXI Отправлено: 11 Апреля, 2012 - 18:34:15 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
Не понял Интересно почему не происходит... И ошибок нет?
(Добавление)
netwixell пишет:
И отображает же он 12 стр а статей то у меня 12 и $num = 10; тоесть стр должно быть 2

У вас код не правильно расположен
PHP:
скопировать код в буфер обмена
  1. $count = ceil($count/$num);
  2. $count = mysql_num_rows(mysql_query("SELECT * FROM content"));

Надо чтобы сначала из бд данные парсились, а потом уже делились на кол-во статей на страницу.
PHP:
скопировать код в буфер обмена
  1. $count = mysql_num_rows(mysql_query("SELECT * FROM content"));
  2. $count = ceil($count/$num);
XXI Отправлено: 11 Апреля, 2012 - 18:24:47 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_query("SELECT * FROM content", $dbconect);
  2. $pagedata = mysql_fetch_array($dbdata);

Зачем это, если мы выводим с помощью другого запроса?
Измените $num на 10(кол-во на страницу)
Вместо
PHP:
скопировать код в буфер обмена
  1. Заголовок <?=$rows['title'];?>

Вот так(для наглядности)
PHP:
скопировать код в буфер обмена
  1. Заголовок <?=$rows['title'];?><br>
XXI Отправлено: 11 Апреля, 2012 - 18:10:36 • Тема: Алгоритм ограничения новостных материалов на одну страницу сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 39
Просмотров: 8460
netwixell пишет:
выводится под ошибкой 1 2 3 4 5 6 7 8 9 10 11 12 номера страниц в адресной смена происходит /?page=1 /?page=2 /?page=3 /?page=4 и тд

Ну хоть страницы есть.
netwixell пишет:
опять ошибка Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in S:\home\newa.com\www\index.php on line 35
строка 35 -
PHP:
скопировать код в буфер обмена

<? while($rows = mysql_fetch_array($dbdata)){?>

Значит ошибка в $dbdata, проверьте запрос

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB