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]   

> Описание: Помогите разобраться со скриптом
Tahion
Отправлено: 14 Декабря, 2009 - 18:37:09
Post Id


Новичок


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


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




Вот сам скрипт, но он не хочет работать. Помогите разобраться:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include_once('config.php');
  4.  
  5. $num = 15;
  6. $page = $_GET['page'];
  7. mysql_connect($DB_host,$DB_user,$DB_pass) or die("Ошибка");
  8. mysql_select_db($DB_name);
  9. $result = mysql_query("SELECT COUNT(*) FROM news");
  10. $num_row = mysql_num_rows($result);
  11. $total = intval(($num_row - 1) / $num) + 1;
  12. $page = intval($page);
  13. if(empty($page) or $page < 0) $page = 1;
  14.   if($page > $total) $page = $total;
  15. $start = $page * $num - $num;
  16. $result = mysql_query("SELECT * FROM news LIMIT $start, $num");
  17. while ( $postrow[] = mysql_fetch_array($result))
  18.  
  19. echo "<table align='center' class='news1' width=100% cellpadding=1 cellspacing=0>";
  20.  
  21. echo "<tr>
  22.                
  23.        <tr><td rowspan='3' class='image'><center><a href='index.php?p=allnew&id=".$postrow[$i]['id']."'><img height='150' width='180' src='".$postrow[$i]['image']."'></a></center></td>
  24.       <td><center><h3><a href='index.php?p=allnew&id=".$postrow[$i]['id']."'>".$postrow[$i]['title']."</a></h3></center></td></tr>
  25.       <tr><td>".$postrow[$i]['ltext']."...</td></tr>
  26.            <tr><td valign='bottom'><p align='right'>".$postrow[$i]['date']."</p></td></tr><hr class='hr'>
  27.            ";
  28.  
  29. echo "</table>";
  30.  
  31. if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
  32.                               <a href= ./page?page='. ($page - 1) .'><</a> ';
  33.  
  34. if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
  35.                                   <a href= ./page?page=' .$total. '>>></a>';
  36.  
  37. if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  38. if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  39. if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  40. if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  41.  
  42. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  43.  
  44. ?>
  45.  
 
 Top
Carzil
Отправлено: 14 Декабря, 2009 - 18:39:25
Post Id



Гость


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


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




Какая ошибка?


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Tahion
Отправлено: 14 Декабря, 2009 - 18:48:50
Post Id


Новичок


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


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




Отображает одну пустую строку таблицы, и внизу циферка 1 и все, больше ничего нет
 
 Top
Carzil
Отправлено: 14 Декабря, 2009 - 18:54:17
Post Id



Гость


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


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




mysql_error()?


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
EuGen Администратор
Отправлено: 14 Декабря, 2009 - 18:55:14
Post Id


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


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


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






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



Гость


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


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




EuGen, я думаю эту статью уже раз 20 все прочитали.


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Мелкий Супермодератор
Отправлено: 14 Декабря, 2009 - 19:22:47
Post Id



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


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


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




Tahion, что меня в вашем коде смущает - так это то, что ответ мускула вы пишете в массив $postrow, который мало того, что только память занимает - кроме цикла нигде не используется, так вы ещё и к элементам его пытаетесь обратиться совершенно неинициализированной переменной $i, которая нигде не меняется.
Да и вообще структура цикла какая-то странная...
PHP:
скопировать код в буфер обмена
  1. echo "<table align='center' class='news1' width=100% cellpadding=1 cellspacing=0>";
  2. $result = mysql_query("SELECT * FROM news LIMIT $start, $num");
  3. while ( $postrow = mysql_fetch_array($result)) {
  4.  
  5. echo "<tr>
  6.  
  7.        <tr><td rowspan='3' class='image'><center><a href='index.php?p=allnew&id=".$postrow['id']."'><img height='150' width='180' src='".$postrow['image']."'></a></center></td>
  8.       <td><center><h3><a href='index.php?p=allnew&id=".$postrow['id']."'>".$postrow['title']."</a></h3></center></td></tr>
  9.       <tr><td>".$postrow['ltext']."...</td></tr>
  10.            <tr><td valign='bottom'><p align='right'>".$postrow['date']."</p></td></tr><hr class='hr'>
  11.            ";
  12.  }
  13. echo "</table>";

Вот так как минимум правильнее логика цикла. В разметке не разбирался, так что может бодренько поплыть.


-----
PostgreSQL DBA
 
 Top
Tahion
Отправлено: 14 Декабря, 2009 - 19:23:34
Post Id


Новичок


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


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




суть не в ошибке mysql а в самом скрипте, при изменении $num, внизу циферка 1, а остальные цифры не отображает
 
 Top
Carzil
Отправлено: 14 Декабря, 2009 - 19:38:30
Post Id



Гость


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


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




У меня была ошибка в MySQL.


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Tahion
Отправлено: 14 Декабря, 2009 - 19:58:21
Post Id


Новичок


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


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




походу там ошибка в высчитывании количества строк в таблице, но как ее исправить?
 
 Top
Мелкий Супермодератор
Отправлено: 14 Декабря, 2009 - 21:14:37
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT COUNT(*) FROM news");
  2. $num_row = mysql_num_rows($result);

мммм... а может определитесь, что вы хотите получать? Что вы делаете: запрашиваете у MySQL количество строк в таблице, а переменной записываете не ответ MySQL, а количество строк, которое она вернула по запросу - т.е. одну.
Не mysql_num_rows, а mysql_result тогда уж.

(Отредактировано автором: 14 Декабря, 2009 - 21:15:09)



-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 18 Декабря, 2009 - 10:35:15
Post Id


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


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


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




Значит, и в 21-й раз прочесть не грех, если первые 20 не помогли. Нужно учиться искать свои ошибки, без этого программировать самостоятельно не получится.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB