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 :: Вопрос=Ответ

 PHP.SU

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


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

> Описание: любопытные задают ,опытные отвечают если есть желание и время!
voskan
Отправлено: 26 Ноября, 2010 - 00:00:26
Post Id


Посетитель


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


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




думаю из за одного вопроса не нужно создавать тему поэтому решил создать общую тему где любой задаст интересующий вопрос.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. а чтоб сделать постраничную навигацию или форум или гостевую обязательно надо использовать GET запрос ? просто я читал и пробывал сделать постраничную навигацию не получилось,форум тоже пытался сделать на пол пути остановился так как через пост я не увидел как можно сделать форум чтоб само все создавалась новые страницы в теме и новые страницы в разделах при достижений некого кол-во сообщений и тем
  3.  
  4.  
 
 Top
OrmaJever Модератор
Отправлено: 26 Ноября, 2010 - 00:24:01
Post Id



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


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


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




Если вы сможите передать значение страницы по другому то всё тоже будет работать.
А чем метод гет уже плох?


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


Посетитель


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


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




просто метод гет смотрел сегодня и ничего не понял немного запутаннее чем post Улыбка поэтому я даже не представляю как реализовать задачи а через post представление есть как реализовать но знаний не хватает Улыбка я не об этом примере а вообще. я просто когда теорию читаю не так уж понимаю а когда примеры разбираю то понятно, а так прошелся по интернету и ничего нормального не нашел про гет метод чтоб изучить на примерах
 
 Top
OrmaJever Модератор
Отправлено: 26 Ноября, 2010 - 00:37:26
Post Id



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


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


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




voskan пишет:
просто метод гет смотрел сегодня и ничего не понял немного запутаннее чем post
Не понял эт как так? гет самый просто метод походу. параметы передаются в сылке после знака вопроса. Вот пример:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://site.com/file.php?page=1&xx=ss

Вот в этом случаи параметру page назначено значение 1 а xx значение ss. Если параметров больше чем один то между ними нужно ставить & (типо and). Всё ж элементарно просто.
Если в скрипте написать так
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. echo $_GET['page']; // выведет 1.
  4. echo $_GET['xx']; // выведет ss.
  5. // можно показать сразу весьмасив параметров.
  6. print_r($_GET); // выведет все параметры в масиве.
  7. ?>

(Добавление)
voskan пишет:
форум тоже пытался сделать

Что бы делать серьёзные вещи нужно всё хорошенько выучить Подмигивание А гет параметр это самые низы.


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



Постоянный участник


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


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




voskan
voskan пишет:
метод гет смотрел сегодня и ничего не понял немного запутаннее чем post
возможно тогда Вам стоит посмотреть метод передачи данных PUT Радость Радость

(Отредактировано автором: 26 Ноября, 2010 - 01:10:11)

 
 Top
JustUserR
Отправлено: 26 Ноября, 2010 - 15:06:08
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




voskan пишет:
Просто метод гет смотрел сегодня и ничего не понял немного запутаннее чем post
Основой реализации используемых вами методов GET и POST для осуществление передачи набора информационных полей из формы на строне пользователя а также идентифицируюее состояние web-ресурса - является общий механихм запроса который в действительности не включает существенной разницы Дело в том что метод POST в действительности является дополнительной реализацией интерфейса GET с обеспечением передачи тела запроса - в то время как огранизация передачи параметров в строке запроса и использование механизмов alias-инга и действенного перенаправления на стороне web-сервера остается неизменной


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
voskan
Отправлено: 26 Ноября, 2010 - 21:43:51
Post Id


Посетитель


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


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




OrmaJever пишет:
voskan пишет:
форум тоже пытался сделать

Что бы делать серьёзные вещи нужно всё хорошенько выучить Подмигивание А гет параметр это самые низы.

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



как известно лучше практики ничего нет для обучения. я не хочу супер мощный форум создавать а хочу создать хоть форум если даже есть дыры и уязвим но я буду знать что я сам сделал и чему то научился а после я буду учить и дополнять и оптимизировать скрипт Улыбка
 
 Top
Мелкий Супермодератор
Отправлено: 26 Ноября, 2010 - 22:11:01
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




voskan, начните с простой гостевой книги. А после - форум, как более сложный, но имеющий ту же принципиальную базу.


-----
PostgreSQL DBA
 
 Top
voskan
Отправлено: 26 Ноября, 2010 - 22:22:10
Post Id


Посетитель


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


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




гостевая есть Улыбка но гостевая проще так как не нужно отображать темы в разделах а в темах сообщения. в гостевой передал в бд,сохранил и вывел на одну страницу а не в темах. а так записывать в бд и вытаскивать могу но не знаю как сделать так чтоб на форум был похож чтоб автоматический все сделалось.мне шаблон нужен в который сам смогу повставлять данные из таблицы
 
 Top
JustUserR
Отправлено: 27 Ноября, 2010 - 12:56:17
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




voskan В качестве возможного варианта решения вашего вопроса по разработки собственной системы форума целесообразно использовать готовое решение - которое включает в себя достаточно простурю структуру алгоритмического обеспечения - для проведения последующего восходящего разбора и собственной модификации компонентов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
voskan
Отправлено: 27 Ноября, 2010 - 23:10:41
Post Id


Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. я передал методом POST данные в бд, теперь хочу сделать постраничную навигацию :) как это сделать ? как извлекать url текущей страницы ???? ведь там не через '?' данные а  вот так /gb/gb.php
 
 Top
OrmaJever Модератор
Отправлено: 27 Ноября, 2010 - 23:16:33
Post Id



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


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


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




все даные переданые методом post приходят в масив $_POST
(Добавление)
а вобще про постаничную навигацию можно прочитать тут http://www.php.su/articles/?cat=...les&page=062


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


Посетитель


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


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




я это понимаю. я с пост записал в бд теперь скрипт должен запросить сообщения из бд (это сделал) и разбить на страницы то есть типо
/gb/gb.php?page=1
/gb/gb.php?page=2
/gb/gb.php?page=3
/gb/gb.php?page=4
/gb/gb.php?page=5

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



а это второй вариант постраничной навигации думал может сработает
PHP:
скопировать код в буфер обмена
  1. <?
  2. include('bd.php');
  3. $res=mysql_query("SELECT count(id) FROM gb ");
  4. $row=mysql_fetch_row($res);
  5. $total_rows=$row[0];
  6.  
  7. //дальше получаем номер страницы и значение для лимита
  8. if (isset($_GET['page'])) $CUR_PAGE=($_GET['page']); else $CUR_PAGE=1;
  9. $start=abs(($CUR_PAGE-1)*$per_page);
  10.  
  11. //выполняем запрос и получаем данные для вывода
  12. $query="SELECT * from gb ORDER BY date DESC LIMIT $start,$per_page";
  13. $res=mysql_query($query);
  14. while ($row=mysql_fetch_array($res)) $DATA[++$start]=$row;
  15.  
  16. //определяем адрес страницы без переменной page
  17. $uri=strtok($_SERVER['REQUEST_URI'],"?")."?";
  18. if (count($_GET)) {
  19.   foreach ($_GET as $k => $v) {
  20.     if ($k != "page") $uri.=urlencode($k)."=".urlencode($v)."&";
  21.   }
  22. }
  23.  
  24. //узнаем общее количество страниц и заполняем массив со ссылками
  25. $num_pages=ceil($total_rows/$per_page);
  26. for($i=1;$i<=$num_pages;$i++) $PAGES[$i]=$uri.'page='.$i;
  27.  
  28. //а дальше выводим в шаблоне днные и навигацию:
  29. ?>
  30. Найдено сообщений: <b><?=$total_rows?></b><br><br>
  31. <? foreach ($DATA as $i => $row): ?>
  32. <?=$i?>. <a href="?id=<?=$row['id']?>"><?=$row['title']?></a><br>
  33. <? endforeach ?>
  34.  
  35. <br>
  36. Страницы:
  37. <? foreach ($PAGES as $i => $link): ?>
  38. <? if ($i == $CUR_PAGE): ?>
  39. <b><?=$i?></b>
  40. <? else: ?>
  41. <a href="<?=$link?>"><?=$i?></a>
  42. <? endif ?>
  43. <? endforeach ?>
 
 Top
OrmaJever Модератор
Отправлено: 27 Ноября, 2010 - 23:38:32
Post Id



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


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


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




voskan Ты вобще читал литературу про пост и гет?
voskan пишет:
/gb/gb.php?page=1

это и есть гет...


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


Посетитель


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


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




так вот я хочу так отобразить а у меня не получаеться. я знаю что это get /gb/gb.php?page=1

опишу подругому чтоб понятнее было
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <form name="" action="/gb/add.php" method="post">
  4. Имя:<input name="data[0]" type="text" value=""><br/>
  5. e-mail:<input name="data[1]" type="text" value=""> <br/>
  6. <textarea name="data[2]" rows=5 cols=20 wrap="off"></textarea>
  7. <br/>
  8. <input type="submit" name="add" value="добавить"> <br/>
  9. </form>
  10. этой формой передал и сохранил все в бд
  11.  


теперь хочу чтоб из бд вытащить сообщения и на каждой странице 5 или 10 сообщений было.
PHP:
скопировать код в буфер обмена
  1.  
  2. я взял подключился к бд посчитал сколько сообщений в бд и застрял, так как не знаю как сделать чтоб после того как достигнет 10 или 5 сообщений на странице чтоб автоматический сохраняло на другую страницу. и в браузерной строке был запись /gb/gb.php?page=1
  3.  


проблема в том что, чтоб скрипт нормально работал должен определить url текущей страницы b + к странице page=2 так как достигли максимум сообщений на странице (напомню что находимся на /gb/gb.php)
(Добавление)

(Отредактировано автором: 27 Ноября, 2010 - 23:54:12)

 
 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