Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Алгоритм ограничения новостных материалов на одну страницу сайта [2]

 PHP.SU

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


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

> Без описания
netwixell
Отправлено: 11 Апреля, 2012 - 17:42:55
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


на 22 Заголовок <?=$rows['title'];?>
(Добавление)
XXI пишет:
PHP:
скопировать код в буфер обмена

<?PHP

header('Content-Type: text/html; utf-8'); // Кодировка

$connect = mysql_connect('localhost', 'root', ''); // Соединение с сервером

$select_db = mysql_select_db('testet', $connect); // Выбор базы

/*

** Ставим кодировку utf-8 к запросам к базе

*/

mysql_query ("set character_set_client='utf8'");

mysql_query ("set character_set_results='utf8'");

mysql_query ("set collation_connection='utf8_general_ci'");



session_start(); // Старт сессии

$num = 2; // Кол-во записей на страницу

$count = mysql_num_rows(mysql_query("SELECT * FROM base")); // Узнаём о кол-ве материалов в базе данных, и забиваем в переменную

$page = isset($_GET['page']) ? $_GET['page'] : 1;

$start = ($page * $num) - $num;

$last = $num;

$count = ceil($count/$num);

$dbdata = mysql_query("SELECT * FROM base LIMIT {$start}, {$last}"); // Запрашиваем данные с учётом страницы

// Выводим данные циклом

?>

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

Заголовок <?=$rows['title'];?>

<?}

// Цикл выводящий пагинатор

for($i = 1; $count >= $i; $i++){?>

<a href="/?page=<?=$i;?>"><?=$i;?></a>

<?}?>

То, не?
Да и поменяйте таблицы на свои... И кол-во записей на страницу... если не то, то я опять не так вас понял



если так то вообще сайт не работает выкидывет ошибку



CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in S:\home\newa.com\www\index.php on line 27
  3.  
  4. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in S:\home\newa.com\www\index.php on line 43
  5.  

(Добавление)
в 27 строке соответственно $
CODE (htmlphp):
скопировать код в буфер обмена
  1. count = mysql_num_rows(mysql_query("SELECT * FROM base")); // Узнаём о кол-ве материалов в базе данных, и забиваем в переменную

в 43
 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 17:47:19
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




Попробуйте изменить имена переменных на разные... Закатив глазки
Это
PHP:
скопировать код в буфер обмена
  1. $dbdata = mysql_num_rows(mysql_query("SELECT * FROM content"));
  2. $dbdata = ceil($dbdata/$num);

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

(Добавление)
netwixell пишет:
если так то вообще сайт не работает выкидывет ошибку

Если вы делаете в точности так как я привёл, не поменяв данные для подключения к бд и таблицы, то да, ошибки будут.

(Отредактировано автором: 11 Апреля, 2012 - 17:50:46)

 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 17:56:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


опять ошибка 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 -

но картина уже такая новости вообщене выводятся а выводится под ошибкой 1 2 3 4 5 6 7 8 9 10 11 12 номера страниц в адресной смена происходит /?page=1 /?page=2 /?page=3 /?page=4 и тд но материалов не видано

(Отредактировано автором: 11 Апреля, 2012 - 17:57:06)

 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 18:10:36
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




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, проверьте запрос
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 18:18:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


Так есть исправил вот что теперь выходит при таком коде
PHP:
скопировать код в буфер обмена
  1.  
  2. <? session_start(); ?>
  3. <?  include("db_conect.php");
  4.         $dbdata = mysql_query("SELECT * FROM content", $dbconect);
  5.         $pagedata = mysql_fetch_array($dbdata); ?>
  6.  <?
  7. $num = 2; // Кол-во записей на страницу
  8. $dbdata = mysql_query("SELECT * FROM content"); // Узнаём о кол-ве материалов в базе данных, и забиваем в переменную
  9. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  10. $start = ($page * $num) - $num;
  11. $last = $num;
  12. $count = ceil($count/$num);
  13. $count = mysql_num_rows(mysql_query("SELECT * FROM content"));
  14. ?>
  15. <? include("head.php");?>
  16. <? while($rows = mysql_fetch_array($dbdata)){?>
  17. Заголовок <?=$rows['title'];?>
  18. <?}
  19. for($i = 1; $count >= $i; $i++){?>
  20.         <a href="/?page=<?=$i;?>"><?=$i;?></a>
  21. <?}?>
  22. <? include("foot.php"); ?>
  23.  


выводит 12 надписей "Заголовок" и стр 1 2 3 4 5 6 7 8 9 10 11 12 по прежнему
/?page=1 /?page=2 /?page=3 /?page=4 работает
 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 18:24:47
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




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>
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 18:30:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


ну верно да выводит 10 заголовков но на каждой стр а выборка из бд не происходит
(Добавление)
И отображает же он 12 стр а статей то у меня 12 и $num = 10; тоесть стр должно быть 2
 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 18:34:15
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




Не понял Интересно почему не происходит... И ошибок нет?
(Добавление)
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);
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 19:16:04
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


да да да есть теперь как положено 2 стр на каждой по 12 "заголовок"<br> как же теперь выгрузить то что в бд ?

(Отредактировано автором: 11 Апреля, 2012 - 19:16:44)

 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 19:58:29
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




Не понял Почему у меня работает, а у вас не выводиться?
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 20:06:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


я не говорю что не работает все работает просто на обеих страницах отображается одно и тоже
(Добавление)
все верно работает новости выводятся и если например выставить $num = 10; то будит 2 страници а если выставить $num = 5; то будит 3 страници но на каждой странице выводяться все статьи с 1 по 12 и на 1 с 1 по 12 и на 2 с 1 по 12 и на 3 с 1 по 12 а нужно чтоб на 1 с 1 по 10 на второй с 11 по 21 на 3 с 22 по 32
 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 20:42:10
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




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}");
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 21:03:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


Тема закрыка иза тупизны автора Радость
 
 Top
XXI
Отправлено: 11 Апреля, 2012 - 21:23:16
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2012  
Откуда: г. Иваново


Помог: 0 раз(а)




netwixell пишет:
иза тупизны автора

Если так думать, то ничего не получится!
 
 Top
netwixell
Отправлено: 11 Апреля, 2012 - 21:24:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


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

поэтому убрать их никак
Гаварим что ограничение статей на стр 10 тоесть

ну точьбнее просто забиваем значение пока что 10 в переменную num
в том что вот эта строка

узнает количество новостей в бд я не уверен ибо не знаю что делает функция mysql_num_rows думал что это нужно сделать через
делим общее кол - во навостей на кторая равна 10
Вот это не понимать вообще
PHP:
скопировать код в буфер обмена
  1. $page = isset($_GET['page']) ? $_GET['page'] : 1;

ну предпологаю что это передача методом гет номера первой стр чтоб начинались стр с 1 а не с 0
тогда вот эта строка вообще не понятна
PHP:
скопировать код в буфер обмена
  1.  $start = ($page * $num) - $num;

Апсолютно так же как не понятно зачем ? если last нигде не используется
PHP:
скопировать код в буфер обмена
  1. <? for($i = 1; $count >= $i; $i++){?>
  2.         <a href="/?page=<?=$i;?>"><?=$i;?></a>
  3. <?}?>
  4.  

тут ясно на каждой интерации увеличиваем $i на 1 и сравниваем ее с $count
которая у нас отвечает за количество стотей в бд но не понимаю каким образом при переполнении $i будит добавляться последующий номер страници
(Добавление)
Радость ДА ДА ДА АДА АД ДА АД ДА ВОТ АНО УУУХХУХХХХХУ ЕСТЬ
КРАСАВЧЕГ КАК ГАВАРИТСЯ ))) Радость Радость Радость Радость

Я заново проанализировал всю тему и палучилось )))
ура!!!!!
вот код
PHP:
скопировать код в буфер обмена
  1.  
  2. <? session_start(); ?>
  3.  
  4. <? include("db_conect.php");
  5.         $dbdata = mysql_query("SELECT * FROM content", $dbconect);
  6.         $pagedata = mysql_fetch_array($dbdata);
  7.         $num = 10;
  8.         $row = mysql_num_rows(mysql_query("SELECT COUNT(*)  content"));
  9.         $page = isset($_GET['page']) ? $_GET['page'] : 1;
  10.         $start = ($page * $num) - $num;
  11.         $last = $num;
  12.         $dbdata = mysql_query("SELECT * FROM content LIMIT {$start}, {$last}", $dbconect);
  13.         $count = mysql_num_rows(mysql_query("SELECT * FROM content"));
  14.         $coun = ceil($count/$num);
  15.         $count = mysql_num_rows(mysql_query("SELECT * FROM content"));
  16.  
  17.  
  18.         ?>
  19.  
  20. <? include("head.php");?>
  21.  
  22. <? while($pagedata = mysql_fetch_array($dbdata)){
  23.  
  24. do{
  25.         printf("
  26.         <a href='newtmpl.php?id=%s'>%s</a>%s
  27.         <div align='right'>
  28.         <a href='newtmpl.php?id=%s'>Подробнее</a> | Автор: %s | Дата добавления: %s | Коментариев: %s 
  29.         </div>
  30.         ",
  31.         $pagedata["id"],$pagedata["title"],$pagedata["introtext"],$pagedata["id"],$pagedata["autor"],$pagedata["date"],$pagedata["views"]);
  32. } while($pagedata = mysql_fetch_array($dbdata));
  33. }?>
  34. <? for($i = 1; $count >= $i; $i++){?>
  35.         <a href="/?page=<?=$i;?>"><?=$i;?></a>
  36.         <?}?>
  37.  
  38. <? include("foot.php"); ?>
  39.  


Радость

не без ашибок канечьно на данный мамент все выводится как надо НО !!! теперь есть 10 страниц на 1 выводятся статьи с 1 по 10 на 2 странице выводится 11 статья а все остальные страницы пусты теперь нужно убрать номера пустых страниц

(Отредактировано автором: 11 Апреля, 2012 - 21:43:11)

 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB