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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: любопытные задают ,опытные отвечают если есть желание и время!
OrmaJever Модератор
Отправлено: 27 Ноября, 2010 - 23:57:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




voskan пишет:
теперь хочу чтоб из бд вытащить сообщения и на каждой странице 5 или 10 сообщений было.

чтобы вывести из бд ограниченое количесвозаписей есть limit. синтаксис примерно такой

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE [условие если нужно] GROUP BY [сортировка если нужно] LIMIT 0,5


В limit tcnm 2 цыфры. Первая этос какой записи начинать, вторая это сколько выводить. В этом случаи выведет первых 5 записей.
Для постраничной навигации первую цыфру нужно не хитрыми операциями изменять.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 00:07:45
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




последний вопрос к тебе Улыбка почему этот скрипт не работает ?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "config.php";
  3. $num = 25;
  4. $page = $_GET['page'];
  5. $result = mysql_query("SELECT COUNT(*) FROM post");
  6. $posts = mysql_fetch_row($result);
  7. $total = intval(($posts - 1) / $num) + 1;
  8. $page = intval($page);
  9.  
  10.   if(empty($page) or $page < 0) $page = 1;
  11.   if($page > $total) $page = $total;
  12.  
  13. $start = $page * $num - $num;
  14. $result = mysql_query("SELECT * FROM post LIMIT $start, $num");
  15. while ( $postrow[] = mysql_fetch_array($result))
  16.  
  17. echo "<table>";
  18. for($i = 0; $i < $num; $i++)
  19. {
  20. echo "<tr>
  21.         <td>".$postrow[$i]['name']."</td>
  22.         <td>".$postrow[$i]['time']."</td></tr>
  23.       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
  24. }
  25. echo "</table>";
  26.  
  27.  
  28. if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
  29.                               <a href= ./page?page='. ($page - 1) .'><</a> ';
  30.  
  31. if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
  32.                                   <a href= ./page?page=' .$total. '>>></a>';
  33.  
  34.  
  35. if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  36. if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  37. if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  38. if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  39.  
  40.  
  41. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  42.  
  43. ?>
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 00:14:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




voskan пишет:
почему этот скрипт не работает ?

Стало модным задавать такие вопросы. А ты сам пробовал понять в чём дело?
Первым делом написать в конце скрипта

Затем посмотреть по ошибке, если там пишет про аргуметы к лимиту то значитнужно смотреть какая переменая не так работает. Постепено после каждой строки ставить var_damp($переменая) и смотреть в какой переменой что не так лежит.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Ноября, 2010 - 00:14:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




А у мя вот такая штука есь...
$page страница которую надо выводить
$pages число всех страниц
$get по умолчанию равен пустоте, но если надо сформировать ссылки типа ?theme=4&page=4 то $get = 'theme=4&';
PHP:
скопировать код в буфер обмена
  1.  
  2.         function apaginator($page,$pages,$get) {
  3.                 if ($page > 3) $paginator .= ' <a href="?'.$get.'page=1">&laquo;&laquo;&laquo;</a> ';
  4.                 for ($i = ($page - 2); $i < ($page + 5); $i++) {
  5.                         if ($i > 0 AND $i < $pages+1) {
  6.                                 if ($i == ($page + 1)) $alink = ' <b>'.$i.'</b> ';
  7.                                 else $alink = ' <a href="?'.$get.'page='.$i.'">'.$i.'</a> ';
  8.                                 $paginator .= $alink;
  9.                                 }
  10.                         }
  11.                 if ($page < $pages-4) $paginator .= ' <a href="?'.$get.'page='.$pages.'">&raquo;&raquo;&raquo;</a> ';
  12.                 return $paginator;
  13.                 }
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 00:19:13
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




OrmaJever пишет:
voskan пишет:
почему этот скрипт не работает ?

Стало модным задавать такие вопросы. А ты сам пробовал понять в чём дело?
Первым делом написать в конце скрипта
PHP:
скопировать код в буфер обмена

1.
echo mysql_error();


Затем посмотреть по ошибке, если там пишет про аргуметы к лимиту то значитнужно смотреть какая переменая не так работает. Постепено после каждой строки ставить var_damp($переменая) и смотреть в какой переменой что не так лежит.

-----
Да почитайте же вы http://php.su/lessons/?lesson_13

PHP:
скопировать код в буфер обмена
  1.  
  2. я это и пытаюсь объяснить в чем ошибка но ты не понимаешь меня :)
  3. $page =intval($page);не определен то есть скрипт не определил начало с какой страницы навигация начинаеться
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Ноября, 2010 - 00:21:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




$page = intval($_GET['page']);
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 00:32:08
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1. $page= $_GET['page'];
  2. я так понимаю выводит url из строки браузера так ? и выводит только после ? то есть если /gb/gb.php?page=1 выведет ?page=1 так ? то есть мы находимся на первой странице. а как скрипт выведет тек url если у меня ссылка в браузере такая /gb/gb.php       ? поэтому и выдает ошибку что  у меня в ссылке нет этого ?page=1
  3.  

(Отредактировано автором: 28 Ноября, 2010 - 00:33:00)

 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 00:33:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




DeepVarvar там есть выше строка.
voskan Покажи пожалуста сылку которая в адресной строке. Скопируй название файла и всё что после него и выложи сюда. Потому что даные просто не приходят в масив GET


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 00:46:43
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1.  
  2. http://voskan.funy.ru/gb/gb.php
  3.  


скрипт
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include('bd.php');
  3. $num = 5;
  4. $page = $_GET['page'];
  5. $result = mysql_query("SELECT COUNT(*) FROM gb");
  6. $user = mysql_fetch_row($result);
  7. $total = (intval(($user - 1)/$num) + 1
  8. $page =intval($page);
  9.  
  10. if(empty($page) or $page < 0) $page = 1;
  11. if($page > $total) $page = $total;
  12. $start = $page * $num - $num;
  13.  
  14. $result = mysql_query("SELECT * FROM gb LIMIT $start, $num");
  15. while ( $postrow[] = mysql_fetch_array($result))
  16. echo "<table>";
  17. for($i = 0; $i < $num; $i++)
  18. {
  19. echo "<tr>
  20.         <td>".$postrow[$i]['nik']."</td>
  21.         <td>".$postrow[$i]['data']."</td></tr>
  22.       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
  23. }
  24. echo "</table>";
  25.  
  26. if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
  27.                               <a href= ./page?page='. ($page - 1) .'><</a> ';
  28. // Проверяем нужны ли стрелки вперед
  29. if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
  30.                                   <a href= ./page?page=' .$total. '>>></a>';
  31.  
  32.  
  33. if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  34. if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  35. if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  36. if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  37.  
  38.  
  39. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  40. ?>


ошибка
PHP:
скопировать код в буфер обмена
  1.  
  2. Parse error: syntax error, unexpected T_VARIABLE in /var/users/funy.ru/voskan/www/gb/gb_read.php on line 13
  3.  


хочу чтоб результат был такой
PHP:
скопировать код в буфер обмена
  1.  
  2. http://voskan.funy.ru/gb/gb.php?page=1
  3. http://voskan.funy.ru/gb/gb.php?page=2
  4. http://voskan.funy.ru/gb/gb.php?page=3
  5.  
  6.  

(Отредактировано автором: 28 Ноября, 2010 - 00:49:00)

 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Ноября, 2010 - 01:00:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




что сделает первым:
$start = $page * $num - $num;
умножит или отнимет???
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 01:01:46
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




DeepVarvar пишет:
что сделает первым:
$start = $page * $num - $num;
умножит или отнимет???

-----
Раньше было: "Мандрата-пупа, мандрата-па"
Теперь в моде: "T_PAAMAYIM_NEKUDOTAYIM"


умножит. разве в этом все дело ?

PHP:
скопировать код в буфер обмена
  1. $page = (intval($page));опять с page ошибку выдает :(

(Отредактировано автором: 28 Ноября, 2010 - 01:04:46)

 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 01:02:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




1) в 7 строке в конце нету точки с запятой.
2) после инклуда поставь строчку
PHP:
скопировать код в буфер обмена
  1. if(!$_GET['page']) $_GET['page'] = 1;


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Ноября, 2010 - 01:02:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




и в строке 7 нет точки с запятой в конце
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 01:03:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




DeepVarvar пишет:
что сделает первым:
$start = $page * $num - $num;
умножит или отнимет???

там всё верно. Оно вначале умножает а потом отнимает.
Можно ещё так написть
($page - 1) * $num


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
voskan
Отправлено: 28 Ноября, 2010 - 01:10:29
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. Notice: Undefined index: page in /var/users/funy.ru/voskan/www/gb/gb_read.php on line 3
  4.  
  5. Fatal error: Unsupported operand types in /var/users/funy.ru/voskan/www/gb/gb_read.php on line 8
  6.  


да ладно не парься уже поздно Улыбка иди спать ты итак много помог. со временем через нет найду решение
 
 Top
Страниц (6): « 1 [2] 3 4 5 6 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB