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]   

> Без описания
xxxsanchosxxx
Отправлено: 03 Декабря, 2010 - 21:47:01
Post Id



Новичок


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


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




Доброе время суток. У меня такая проблема: есть сайт разделенный на блоки и в левом блоке я выводу список категорий, для того что б вывести список я использую запрос и вывожу значения в цикле. Но выводит в цикле тока 1-ое значение с базы и столько раз скока значений у меня в таблице!
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include 'block/db.php';
  4.    $result2 = mysql_query ("SELECT * FROM category",$db);
  5.  
  6.        
  7.         if(!$result2)
  8.         {
  9.         echo "Запрос не прошол!";
  10.         exit(mysql_error());
  11.         }
  12.        
  13.         if(mysql_num_rows($result2)>0)
  14.         {
  15.           $myrow2 = mysql_fetch_array($result2);
  16.        
  17.         do
  18.         {
  19.         printf ("<li><a href='view_cat.php?cat=%s'>%s</a></li>",$myrow2["id"],$myrow2["title"]);
  20.         }
  21.         while ( mysql_fetch_array ($result2));
  22.     }
  23.         else
  24.         {
  25.         echo "Информация по запросу не извлечена в таблице нет записей";
  26.         }
  27. ?>
  28.  


-----
Я такой какой я есть!
 
 Top
OrmaJever
Отправлено: 03 Декабря, 2010 - 21:52:49
Post Id



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


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


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




xxxsanchosxxx пишет:
1-ое значение с базы и столько раз скока значений у меня в таблице!

Потому что ненужно использовать do - while длявыборки с базы!
в вашем случаи проблема в 23 строке. там нужно написать вот так

так работать будетно это не правельный вариант! Лутше использовать цыкл while Подмигивание


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



Участник


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


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




xxxsanchosxxx
Кто вас всех учит писать так:

do{}
while()

чем while не нравится без do

Второе, для чего выводить через printf??? Отделите вообще html от php - не привыкайте так писать, потом тяжело отвыкнуть
 
 Top
xxxsanchosxxx
Отправлено: 03 Декабря, 2010 - 22:00:45
Post Id



Новичок


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


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




Ну если использовать только цикл while, тока выведется тока 1-ое значение з базы, а мне нужно что б вывелось все поля с базы! Как это зделать?


-----
Я такой какой я есть!
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Декабря, 2010 - 22:05:47
Post Id



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


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


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




xxxsanchosxxx если использовать do, то цикл отработает хотябы один раз (гарантированно), без do - может и ни разу...
xxxsanchosxxx пишет:
если использовать только цикл while, тока выведется тока 1-ое

Апсалютно неверное утверждение...
 
 Top
ALEN
Отправлено: 03 Декабря, 2010 - 22:06:30
Post Id



Участник


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


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




xxxsanchosxxx
товарищ не говорите плохие вещи, прочтите мат часть, это цикл и он выполняется столько сколько указано в условии, а не один раз.
(Добавление)
На будущее do с while нужно в очень редких случаях, а если у вас новостей нет в БД, у вас выведится кривой шаблон с пустыми данными т.к. вы используете do , а в моем случае все будет четко.

Как уже напомнил DeepVarvar do обеспечивает хотя бы один вызов цикла, т.е. если даже новостей нет, цикл пройдет - результат такой работы уже огласил
 
 Top
xxxsanchosxxx
Отправлено: 03 Декабря, 2010 - 22:11:30
Post Id



Новичок


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


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




А самое интересное в том что когда я использовал цикл do..while выводилось 1-ое значение в таблице, и столько раз скока значений в таблице! Но теперь когда я используй цикл while выводится тока одно значение!
Что мне нужно в коде переделать что все выводилось как надо!

(Отредактировано автором: 03 Декабря, 2010 - 22:14:06)



-----
Я такой какой я есть!
 
 Top
JustUserR
Отправлено: 03 Декабря, 2010 - 22:29:57
Post Id



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


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


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




xxxsanchosxxx Для осуществления вывода информационных полей целеовго SQL-запроса из ассоциативного массива их представления на стороне PHP-скрипта - необходимо использование синтаксической конструкции в условном выражении включающей в себя получение очередного элемента в функции mysql_fetch_array


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



Новичок


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


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




А как это осуществить?


-----
Я такой какой я есть!
 
 Top
JustUserR
Отправлено: 03 Декабря, 2010 - 22:41:26
Post Id



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


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


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




xxxsanchosxxx пишет:
А как это осуществить?
Осуществлене выбора информационных полей из ассоциативного массива их представления в PHP-скрипте - возможно использование конструкции типа $row=mysql_fetch_row($resourse) для получения последующей строки с информационным компонентами - или осуществление выбора конкретного элемента средствами функции mysql_resut


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



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


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


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




Заюзать:
JustUserR пишет:
mysql_fetch_array
 
 Top
xxxsanchosxxx
Отправлено: 03 Декабря, 2010 - 23:02:05
Post Id



Новичок


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


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




Все спасибо!


-----
Я такой какой я есть!
 
 Top
OrmaJever
Отправлено: 04 Декабря, 2010 - 19:51:02
Post Id



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


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


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




xxxsanchosxxx скажите где вы научились использовать do - while и printf() для вывода из базы?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Earl
Отправлено: 06 Января, 2014 - 19:08:04
Post Id



Новичок


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


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




OrmaJever пишет:
xxxsanchosxxx скажите где вы научились использовать do - while и printf() для вывода из базы?



Скорее всего, с php курса Евгения Попова.
Очень хороший курс.
Сам по нему учился))


Отредактировано администратором: EuGen, 06 Января, 2014 - 19:32:54
Многие здесь не согласятся. На рекламу не сильно похоже, но на всякий случай - устное предупреждение
 
 Top
EuGen Администратор
Отправлено: 06 Января, 2014 - 19:31:31
Post Id


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


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


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




OrmaJever пишет:
Отправлено: 04 Декабря, 2010 - 19:51:02

Earl пишет:
Отправлено: 06 Января, 2014 - 19:08:04

С Новым Годом.
Тема закрыта!


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB