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


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

> Без описания
Ermite
Отправлено: 18 Февраля, 2016 - 19:05:01
Post Id


Новичок


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


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




Здравствуйте. В инете нашел скрипт постраничного вывода информации из БД. Соединил его с простеньким скриптом гостевой книги (БД не используется, все данные записываются в txt файл). В общем, вот, что получилось:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function link_bar($page, $pages_count)
  3. {
  4. for ($j = 1; $j <= $pages_count; $j++)
  5. {
  6. // Вывод ссылки
  7. if ($j == $page) {
  8. echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
  9. } else {
  10. echo ' <a style="color: #808000;" href='.$_SERVER['php_self'].'?page='.$j.'>'.$j.'</a> ';
  11. }
  12. // Выводим разделитель после ссылки, кроме последней
  13. // например, вставить "|" между ссылками
  14. if ($j != $pages_count) echo ' ';
  15. }
  16. return true;
  17. } // Конец функции
  18.  
  19. // Подготовка к постраничному выводу
  20. $perpage = 3; // Количество отображаемых данных из БД
  21.  
  22. if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
  23. $page = 1;
  24. } else {
  25. $page = (int) $_GET['page']; // Считывание текущей страницы
  26. }
  27. // Общее количество информации
  28. $file=file("admin.txt") or die("<center>данных нет</center>");
  29. $count=count($file);
  30. $pages_count = ceil($count / $perpage); // Количество страниц
  31.  
  32. // Если номер страницы оказался больше количества страниц
  33. if ($page > $pages_count) $page = $pages_count;
  34. $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
  35.  
  36. // Вызов функции, для вывода ссылок на экран
  37. link_bar($page, $pages_count);
  38.  
  39. // Вывод информации из базы данных
  40. $q1 = -3;
  41. for ($q = 1; $q < $pages_count+3; $q++) {
  42. $q1 = $q1+3;   
  43. $array1[$q] = $q1;
  44. }
  45. $pp = $array1[$page]+3;
  46.  
  47. for ($i = $array1[$page]; ($i < $pp); $i++)
  48. {
  49.  
  50. $rdm=explode("|||||",$file[$i]);
  51.  
  52.  
  53.  
  54.            echo "<br>Имя: $rdm[0]  <br> ";
  55.                    echo "Сообщение:$rdm[1] <br> ";
  56.                    echo "Имя: <img src='$rdm[2].png' style='width:75px;'> ";
  57.  
  58. }
  59.  
  60.   // echo '<script type="text/javascript">alert('.$array1[$page].');</script>';
  61. echo "<hr>";
  62.  
  63. ?>


Но есть одна проблема. Новые сообщения выводятся, даже если их нет в txt файле

т.е., если количество строк в файле не кратно трем, то на последней странице будет 1-2 пустых сообщений. Можно это как-нибудь исправить?)
Содержимое admin.txt:

CODE (htmlphp):
скопировать код в буфер обмена
  1. 1|||||kek|||||3
  2. 2|||||Я кекнул|||||3
  3. 3|||||Ещё раз кекнул|||||3
  4. 4|||||И ещё раз|||||3
  5. 5|||||Кееееек|||||3
  6. 6|||||kek|||||3
  7. 7|||||Я кекнул
  8. 8|||||Ещё раз кекнул|||||3
  9. 9|||||И ещё раз
  10. 10|||||Кееееек
  11. 11|||||Кееееек
  12. 12|||||Кееееек|||||3
  13. 12|||||Кееееек|||||3


PS только сегодня начал изучение php.
 
 Top
rasschitai
Отправлено: 18 Февраля, 2016 - 21:13:55
Post Id



Новичок


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


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




вы включите ошибки и все станет на свои места

(Отредактировано автором: 18 Февраля, 2016 - 21:14:21)

 
 Top
Ermite
Отправлено: 18 Февраля, 2016 - 22:00:24
Post Id


Новичок


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


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




rasschitai пишет:
вы включите ошибки и все станет на свои места
В каком смысле? Как их включить?
 
 Top
exlant
Отправлено: 18 Февраля, 2016 - 23:38:28
Post Id



Посетитель


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


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




например так ini_set('display_errors', 1);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB