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]   

> Без описания
LORDIF
Отправлено: 14 Декабря, 2010 - 15:10:42
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $res = mysql_query("SELECT title,id FROM books",$db);
  3. $i = 1;
  4. while($row = mysql_fetch_array($res) && $i <= 10)
  5. {
  6. printf('<tr>
  7. <td class="table_left"><a href="view.php?id=%s">%s</a></td>
  8. <td class="table_right"><b>'.($i < 10 ? '0':'').''.$i.'</b></td>
  9. </tr>',$row["id"],$row["title"]);
  10. $i++;
  11. }
  12. ?>

Маркеры не выводятся, можете плз сказать в чем ошибка, хотя видно, что инфа из базы выводится, так как в базе 3 заметки и выводится токо 3 поля, вместо 10.

(Отредактировано автором: 14 Декабря, 2010 - 15:12:32)

 
 Top
CenapaTop
Отправлено: 14 Декабря, 2010 - 15:16:03
Post Id



Частый гость


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


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




3 заметки
mysql_fetch_array() возвращает FALSE
цикл while завершается
 
 Top
LORDIF
Отправлено: 14 Декабря, 2010 - 15:29:56
Post Id



Частый гость


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


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




CenapaTop пишет:
mysql_fetch_array() возвращает FALSE

Почему он возвращает FALSE?

(Отредактировано автором: 14 Декабря, 2010 - 15:31:29)

 
 Top
CenapaTop
Отправлено: 14 Декабря, 2010 - 15:33:52
Post Id



Частый гость


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


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




LORDIF пишет:
так как в базе 3 заметки
 
 Top
LORDIF
Отправлено: 14 Декабря, 2010 - 15:35:35
Post Id



Частый гость


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


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




Я сделал 100 и ничего не меняется, просто выводится нумерование до 10
Маркеры не работают.
(Добавление)
Сделал проверку
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if($res == TRUE) {echo "Yes";}
  3. else {echo "No!";}
  4. if($row = mysql_fetch_array($res) == TRUE) {echo "Yes";}
  5. else {echo "No!";}?>

Все работает!
(Добавление)
Вот что сделал:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $res = mysql_query("SELECT title,id FROM books",$db);
  3. $i = 1;
  4. while($row = mysql_fetch_array($res) && $i <= 10)
  5. {
  6. echo '<tr>
  7. <td class="table_left"><a href="view_book.php?id=s">'.var_dump($row["title"]).'</a></td>
  8. <td class="table_right"><b>'.($i < 10 ? '0':'').''.$i.'</b></td>
  9. </tr>';
  10. $i++;
  11. }
  12. ?>

Вар дамп показал все значения NULL, но они все имеют значения, почему?
 
 Top
Мелкий Супермодератор
Отправлено: 14 Декабря, 2010 - 16:06:02
Post Id



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


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


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




LORDIF пишет:
Вар дамп показал все значения NULL, но они все имеют значения, почему?

var_dump выводит текст сам. И абсолютно ничего не возвращает, т.е. void. А конкатенация с ничем (void) и даёт NULL в строку.


-----
PostgreSQL DBA
 
 Top
LORDIF
Отправлено: 14 Декабря, 2010 - 16:14:55
Post Id



Частый гость


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


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




Тогда я совсем не понимаю почему не работает скрипт
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $res = mysql_query("SELECT title,id FROM books",$db);
  3. $i = 1;
  4. while($row = mysql_fetch_array($res) && $i <= 10)
  5. {
  6. printf('<tr>
  7. <td class="table_left"><a href="view.php?id=%s">%s</a></td>
  8. <td class="table_right"><b>'.($i < 10 ? '0':'').''.$i.'</b></td>
  9. </tr>',$row["id"],$row["title"]);
  10. $i++;
  11. }
  12. ?>
 
 Top
Мелкий Супермодератор
Отправлено: 14 Декабря, 2010 - 16:25:21
Post Id



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


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


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




"не работает" - плохое описание. В чём это проявляется,

сколько пишет


-----
PostgreSQL DBA
 
 Top
LORDIF
Отправлено: 14 Декабря, 2010 - 16:27:34
Post Id



Частый гость


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


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




Столько сколько в базе ячеек: 30
 
 Top
OrmaJever
Отправлено: 14 Декабря, 2010 - 16:38:08
Post Id



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


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


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




зачем это условие $i <= 10 ?
Непроще поставить в цыкле


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LORDIF
Отправлено: 14 Декабря, 2010 - 18:39:39
Post Id



Частый гость


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


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




Хм, поставил как вы посоветовали через if и все заработало, правда я так и не понял ошибку(
Правда в моем случае мне нужно выводить 10 значений, так что мне нужно было

А так огромное спасибо за подсказку.

(Отредактировано автором: 14 Декабря, 2010 - 18:46:16)

 
 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