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 :: Вывод массива в тег Select

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
allforweb
Отправлено: 02 Октября, 2010 - 18:15:09
Post Id


Гость


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


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




Я вывел в массив список категорий, а загнать их в выпадающий список SELECT не получается. Подскажите где ошибка:

Список категорий получил циклом For
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query ("SELECT name FROM cat ORDER BY name");
  2.                 $myrow = mysql_fetch_row ($result);
  3.  
  4.             for ($cat=0; $cat<mysql_num_rows($result); $cat++)
  5.             {
  6.           $final = mysql_fetch_array($result);
  7.           echo "$final[name]<br>";
  8.              }


Список выводится на странице корректно, а вот тег Select пустой

PHP:
скопировать код в буфер обмена
  1. <select name=\"cat\">Выбрать Категорию</select>         for ($cat=0; $cat<mysql_num_rows($result); $cat++)
  2.             {
  3.          $final = mysql_fetch_array($result);
  4.          echo <option>$final[name]</option>;
  5.             }
 
 Top
Uchkuma
Отправлено: 02 Октября, 2010 - 18:27:09
Post Id



Участник


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


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




Выбрать элементы в массив можно так:
PHP:
скопировать код в буфер обмена
  1. $items = array();
  2. while($myrow = mysql_fetch_assoc($result)){
  3. $items[] = $myrow;
  4. }

А вывести из него в список вот так:
PHP:
скопировать код в буфер обмена
  1. echo 'Выбрать Категорию <select name="cat">';
  2. foreach($items as $item){
  3. echo '<option>'.$item['name'].'</option>';
  4. }
  5. echo '</select>';
Так будет правильнее, чем ваш ваши циклы for. А ошибка у вас еще в том, что вы select закрыли не в том месте. И надпись "Выбрать категорию" тоже не в том месте.
 
 Top
allforweb
Отправлено: 02 Октября, 2010 - 20:50:24
Post Id


Гость


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


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




Ошибка здесь:

PHP:
скопировать код в буфер обмена
  1. echo '<option>'.$item['name'].'</option>';


Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
 
 Top
JustUserR
Отправлено: 03 Октября, 2010 - 01:17:43
Post Id



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


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


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




allforweb пишет:
Список выводится на странице корректно, а вот тег Select пустой
Причиной неправильного вывода списковой информации в виде представления select-элемента может быть содержание их в недостаточном уровне кодирования - в частности если имя выводимой категории является произвольной строкой и содержит неограниченный набор составляюших компонентных символов - то необходимо проводить предварительное HTML-мнемонирование для обеспечения правильного результата - кроме того вы можете просмотреть исходный код сгенерированной HTML-страницы для просмотра значений и уровня интерполируемых значений и определения возможной ошибки


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



Новичок


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


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




allforweb
Проверь поля в базе данных или скажи их нам.
Вот мой код которым я выбираю поля:

PHP:
скопировать код в буфер обмена
  1.        
  2. mssql_select_db($db_name, $db_connect) or die ("system_error". __LINE__ );
  3. $query = mssql_query("SELECT * FROM table", $db_connect) or die ("system_error". __LINE__ );
  4. if(mssql_num_rows($query)<=0)
  5. {
  6.         echo ("записей не обнаружено!");
  7.         }else{
  8.                 echo ("SELECT: <select name=\"name\">");
  9.                 while ($row = mssql_fetch_array($query))
  10.                 {
  11.                         echo ("<option value=\"$row[id]\">$row[name]</option>\n");
  12.                 };
  13.                 echo ("</select>");
  14.                
  15. };
  16.  
 
 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