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 »   

> Без описания
valenok
Отправлено: 17 Октября, 2007 - 02:53:13
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Всё конечно хорошо и здорово за исключением
Цитата:
и написать что то наподобие "Администрация портала дополнила эту статью..."


Именно для этого нужно найти администратора портала.\n\n(Добавление)
А мне интересно, когда иссякнет срок годности домена, нас проплатят?


-----
Truly yours, Sasha.
 
My status
 Top
Ejik
Отправлено: 17 Октября, 2007 - 05:29:38
Post Id


Гость


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


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




evgenijj
Не подскажите где и что нужно изменить.
 
 Top
EuGen Администратор
Отправлено: 19 Октября, 2007 - 11:13:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Цитата:
А мне интересно, когда иссякнет срок годности домена, нас проплатят?

А кто это сделает если администрации нет??


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
evgenijj
Отправлено: 19 Октября, 2007 - 14:40:08
Post Id



Участник


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


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




EuGen пишет:
и вот поэтому то мне и хочется, чтобы портал был еще лучше.


Мне тоже, потому как я считаю его лучшим русскоязычным сайтом, посвященном PHP.

valenok пишет:
А мне интересно, когда иссякнет срок годности домена, нас проплатят?


Хороший вопрос... Самому интересно.

Цитата:

Не подскажите где и что нужно изменить.

У меня есть вариант этого скрипта -- с изменениями и дополнениями. Надеюсь, тебя устроит.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. include_once( 'header.php' );
  5.  
  6. define( 'USERS_ON_PAGE', 20 );
  7.  
  8. // Выбираем из БД количество пользователей - это нужно для
  9. // построения постраничной навигации
  10. $query = "SELECT COUNT(*) FROM ".TABLE_USERS." WHERE 1";
  11. $res = mysql_query( $query );
  12. $total = mysql_result( $res, 0, 0 );
  13.    
  14. // Проверяем передан ли номер текущей страницы (постраничная навигация)
  15. if ( isset($_GET['page']) )
  16. {
  17.     $page = (int)$_GET['page'];
  18.     if ( $page < 1 ) $page = 1;
  19. }
  20. else
  21. {
  22.     $page = 1;
  23. }
  24.  
  25. // Число страниц списка пользователей (постраничная навигация)
  26. $cnt_pages = ceil( $total / USERS_ON_PAGE );
  27. if ( $page > $cnt_pages ) $page = $cnt_pages;
  28. // Начальная позиция (постраничная навигация)
  29. $start = ( $page - 1 ) * USERS_ON_PAGE;
  30.  
  31. $query = "SELECT id, login, www, icq
  32.          FROM ".TABLE_USERS."
  33.          WHERE 1 ORDER BY id ASC LIMIT ".$start.", ".USERS_ON_PAGE;
  34. $res = mysql_query( $query );
  35.  
  36. // Выводим "шапку" таблицы
  37. echo '<table border="1">'."\n";
  38. echo '<tr>'."\\n";
  39. echo '<th>Имя</th>'."\\n";
  40. echo '<th>E-mail</th>'."\\n";
  41. echo '<th>WWW</th>'."\\n";
  42. echo '<th>ICQ</th>'."\\n";
  43. echo '</tr>'."\\n";
  44.  
  45. while( $user = mysql_fetch_array( $res ) )
  46. {
  47.  
  48.     echo '<tr>'."\n";
  49.     echo '<td><a href="userInfo.php?id='.$user['id'].'">'.$user['login'].'</a></td>'."\\n";
  50.     echo '<td><a href="sendMessage.php?id='.$user['id'].'">Написать</a></td>'."\\n";
  51.     if ( !empty( $user['www'] ) )
  52.         echo '<td><a href="'.$user['www'].'" target="_blank">'.$user['www'].'</td>'."\\n";
  53.     else
  54.         echo '<td>&nbsp;</td>'."\\n";
  55.     if ( !empty( $user['icq'] ) )
  56.         echo '<td>'.$user['icq'].'</td>'."\\n";
  57.     else
  58.         echo '<td>&nbsp;</td>'."\\n";  
  59.     echo '</tr>'."\\n";
  60. }
  61.  
  62. echo '</table>'."\\n";
  63.  
  64. // Строим постраничную навигацию
  65. if ( $cnt_pages > 1 )
  66. {
  67.     echo '<div>&nbsp;Страницы: ';
  68.     // Проверяем нужна ли стрелка "В начало"
  69.     if ( $page > 3 )
  70.         $startpage = '<a href="usersList?page=1"><<</a> ... ';
  71.     else
  72.         $startpage = '';
  73.     // Проверяем нужна ли стрелка "В конец"
  74.     if ( $page < ($cnt_pages - 2) )
  75.         $endpage = ' ... <a href="usersList.php?page='.$cnt_pages.'">>></a>';
  76.     else
  77.         $endpage = '';
  78.  
  79.     // Находим две ближайшие станицы с обоих краев, если они есть
  80.     if ( $page - 2 > 0 )
  81.         $page2left = ' <a href="usersList.php?page='.($page - 2).'">'.($page - 2).'</a> | ';
  82.     else
  83.         $page2left = '';
  84.     if ( $page - 1 > 0 )
  85.         $page1left = ' <a href="usersList.php?page='.($page - 1).'">'.($page - 1).'</a> | ';
  86.     else
  87.         $page1left = '';
  88.     if ( $page + 2 <= $cnt_pages )
  89.         $page2right = ' | <a href="usersList.php?page='.($page + 2).'">'.($page + 2).'</a>';
  90.     else
  91.         $page2right = '';
  92.     if ( $page + 1 <= $cnt_pages )
  93.         $page1right = ' | <a href="usersList.php?page='.($page + 1).'">'.($page + 1).'</a>';
  94.     else
  95.         $page1right = '';
  96.  
  97.     // Выводим меню
  98.     echo $startpage.$page2left.$page1left.'<strong>'.$page.'</strong>'.$page1right.$page2right.$endpage."\n";
  99.  
  100.     echo '</div>'."\\n";
  101. }
  102.  
  103. include_once( 'footer.php' );
  104.  
  105. ?>
  106.  



 
 Top
Ejik
Отправлено: 22 Октября, 2007 - 08:16:26
Post Id


Гость


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


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




evgenijj
Большое спасибо, все работает!!!! Улыбка
 
 Top
Lamer
Отправлено: 06 Декабря, 2007 - 15:47:04
Post Id


Новичок


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


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




Довольно странно, но скрипт, который вы называли не рабочим, действует у меня исправно Не понял Конечно же с вашими изменениямиУлыбка

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. mysql_connect($hostname,$username,$password) or die("Не возможно создать соеденение c сервером MySQL. Возможно сервер выключен");
  5. mysql_select_db($dbName) or die("Не возможно создать соеденение с базой данных сервера MySQL.");
  6.  
  7. // Переменная хранит число сообщений выводимых на станице  
  8. $num = 20;  
  9. // Извлекаем из URL текущую страницу  
  10. $page = $_GET['page'];  
  11. // Определяем общее число сообщений в базе данных  
  12. $result = mysql_query("SELECT COUNT(*) FROM pages WHERE 1");  
  13. $rgPosts = mysql_fetch_row($result);  
  14. $posts=$rgPosts[0];
  15.  
  16. // Находим общее число страниц  
  17. $total = intval(($posts - 1) / $num) + 1;  
  18. // Определяем начало сообщений для текущей страницы  
  19. $page = intval($page);  
  20. // Если значение $page меньше единицы или отрицательно  
  21. // переходим на первую страницу  
  22. // А если слишком большое, то переходим на последнюю  
  23. if(empty($page) or $page < 0) $page = 1;  
  24.   if($page > $total) $page = $total;  
  25. // Вычисляем начиная к какого номера  
  26. // следует выводить сообщения  
  27. $start = $page * $num - $num;  
  28. // Выбираем $num сообщений начиная с номера $start  
  29. $result = mysql_query("SELECT * FROM pages LIMIT $start, $num");  
  30. // В цикле переносим результаты запроса в массив $postrow  
  31. while ( $postrow[] = mysql_fetch_array($result))
  32. ?>
  33. <?PHP  
  34. echo "<table>";  
  35. for($i = 0; $i < $num; $i++)  
  36. {  
  37.  echo "<tr>
  38.         <td>".$postrow[$i]['username']."</td>
  39.         <td>".$postrow[$i]['time']."</td></tr>
  40.       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";  
  41. }  
  42. echo "</table>";  
  43. ?>
  44. <?PHP  
  45. // Проверяем нужны ли стрелки назад  
  46. if ($page != 1) $pervpage = '<a href= ./index.php?page=1><<</a>  
  47.                               <a href= ./index.php?page='. ($page - 1) .'><</a> ';  
  48. // Проверяем нужны ли стрелки вперед  
  49. if ($page != $total) $nextpage = ' <a href= ./index.php?page='. ($page + 1) .'>></a>  
  50.                                   <a href= ./index.php?page=' .$total. '>>></a>';  
  51.  
  52. // Находим две ближайшие станицы с обоих краев, если они есть  
  53. if($page - 2 > 0) $page2left = ' <a href= ./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
  54. if($page - 1 > 0) $page1left = '<a href= ./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
  55. if($page + 2 <= $total) $page2right = ' | <a href= ./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
  56. if($page + 1 <= $total) $page1right = ' | <a href= ./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  57.  
  58. // Вывод меню  
  59. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;  
  60.  
  61. ?>
  62.  
  63.  


А кто нибудь подскажет, как можно организовать вывод информации с последнего сообщения? Т.е. в базе данных 90 сообщений, и надо вывести информацию так, чтобы на первой странице первым сообщением было именно последнее 90 и так в обратном направлении. Советовали применить ORDER by ... DESC, но я не знаю как это сделать, подскажите пожалуйстаОгорчение
 
 Top
Ejik
Отправлено: 07 Декабря, 2007 - 04:38:37
Post Id


Гость


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


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




Lamer
попробуйте так:
$result = mysql_query("SELECT * FROM pages ORDER BY id DESC LIMIT $start, $num");
 
 Top
Novichok
Отправлено: 07 Декабря, 2007 - 07:07:53
Post Id


Новичок


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


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




В MS SQL отсутствует нужный опертор limit. как можно поменять запрос для MS SQL
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");
Заранее благодарю за ответ.
 
 Top
Lamer
Отправлено: 07 Декабря, 2007 - 08:14:58
Post Id


Новичок


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


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




Ejik

Спасибо, заработало Улыбка
 
 Top
evgenijj
Отправлено: 07 Декабря, 2007 - 20:45:53
Post Id



Участник


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


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




Novichok пишет:
В MS SQL отсутствует нужный опертор limit. как можно поменять запрос для MS SQL
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");
Заранее благодарю за ответ.

Я много раз натыкался на такой вопрос -- как реализовать конструкцию LIMIT в MS SQL Server? Ответ один -- хранимая процедура. Поищи через Google или Yandex -- наверняка найдешь ответ.
 
 Top
Pirat
Отправлено: 29 Апреля, 2008 - 14:33:12
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Нояб. 2007  
Откуда: Украина, Одесса


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




был вопрос к Евгению.... но разобрался в другом топике

(Отредактировано автором: 30 Апреля, 2008 - 01:42:11)



-----
Вообще я продаю автозапчасти... оптом
А PHP - это хобби...
 
 Top
mhayrullaev
Отправлено: 11 Июля, 2008 - 08:05:08
Post Id


Новичок


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


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

[+]


а кто может написать постраничную новигацию только для БД Oracle. Запарился, очень нужна помощь. Огорчение
 
 Top
Askaman
Отправлено: 22 Января, 2009 - 19:51:59
Post Id


Новичок


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


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




Подскажите пжл. такую же функцию только для mssql. На MySQL с исправлениями работает на отлично а на MSSQL выдает ошибку Line 1: Incorrect syntax near '0'. (severity 15) и исправления не помогают.
 
 Top
Champion Супермодератор
Отправлено: 22 Января, 2009 - 19:57:29
Post Id



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


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


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




Askaman, а сам текст запроса было бы хорошо. Который к ошибке приводит. Выведите его на экран...
 
 Top
Askaman
Отправлено: 22 Января, 2009 - 22:01:57
Post Id


Новичок


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


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




Champion пишет:
Askaman, а сам текст запроса было бы хорошо. Который к ошибке приводит. Выведите его на экран...


Код:
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. // Устанавливаем соединение с базой данных
  4. mssql_connect('localhost', 'login', 'pass') or die('error! Нет соединения с сервером mssql!');
  5. mssql_select_db('Web') or die('error! Нет соединения с базой данных!');
  6. // Переменная хранит число сообщений выводимых на станице
  7. $num = 10;
  8. // Извлекаем из URL текущую страницу
  9. $page = $_GET['page'];
  10. // Определяем общее число сообщений в базе данных
  11. $result = mssql_query("SELECT COUNT(*) FROM news");
  12. $rgPosts = mssql_fetch_row($result);
  13. $posts = $rgPosts[0];
  14. // Находим общее число страниц
  15. $total = intval(($posts - 1) / $num) + 1;
  16. // Определяем начало сообщений для текущей страницы
  17. $page = intval($page);
  18. // Если значение $page меньше единицы или отрицательно
  19. // переходим на первую страницу
  20. // А если слишком большое, то переходим на последнюю
  21. if(empty($page) or $page < 0) $page = 1;
  22.   if($page > $total) $page = $total;
  23. // Вычисляем начиная к какого номера
  24. // следует выводить сообщения
  25. $start = $page * $num - $num;
  26. // Выбираем $num сообщений начиная с номера $start
  27. $result = mssql_query("SELECT * FROM news LIMIT $start, $num");
  28. // В цикле переносим результаты запроса в массив $postrow
  29. while ( $postrow[] = mssql_fetch_array($result))
  30.  
  31. /* sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss */
  32. echo "<table>";
  33. for($i = 0; $i < $num; $i++)
  34. {
  35. echo "<tr>
  36.         <td>".$postrow[$i]['id']."</td>
  37.         <td>".$postrow[$i]['title']."</td></tr>";
  38. }
  39. echo "</table>";
  40. /* sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss*/
  41.  
  42. // Проверяем нужны ли стрелки назад
  43. if ($page != 1) $pervpage = '<a href= index.php?page=1><<</a>
  44.                               <a href= index.php?page='. ($page - 1) .'><</a> ';
  45. // Проверяем нужны ли стрелки вперед
  46. if ($page != $total) $nextpage = ' <a href= index.php?page='. ($page + 1) .'>></a>
  47.                                   <a href= index.php?page=' .$total. '>>></a>';
  48.  
  49. // Находим две ближайшие станицы с обоих краев, если они есть
  50. if($page - 2 > 0) $page2left = ' <a href= index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  51. if($page - 1 > 0) $page1left = '<a href= index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  52. if($page + 2 <= $total) $page2right = ' | <a href= index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  53. if($page + 1 <= $total) $page1right = ' | <a href= index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  54.  
  55. // Вывод меню
  56. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  57.  
  58. ?>


Ошибка:
Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near '0'. (severity 15) in D:\Web\htdocs\Work\1\news2.php on line 27

Warning: mssql_query() [function.mssql-query]: Query failed in D:\Web\htdocs\Work\1\news2.php on line 27

Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in D:\Web\htdocs\Work\1\news2.php on line 29

(Отредактировано автором: 22 Января, 2009 - 22:03:09)

 
 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