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
Форумы портала PHP.SU :: Версия для печати :: Значение из БД в <select>
Форумы портала PHP.SU » » Вопросы новичков » Значение из БД в <select>

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

1. Elegant - 14 Июня, 2012 - 08:53:19 - перейти к сообщению
Привет всем! Столкнулся с такой проблемой..не могу понять..
Есть одна БД "dost"
в ней две нужные нам таблицы "sites", "sites_cat"
итак. в SITES есть поля - "id" "cat" "site_name"
ID- Автоинкеремент
CAT - цифра соответсвующая автоинкременту в таблице sites_cat
Site_name - просто имя сайта
Вторая таблица SITES_CAT, есть поля "id", "cat_name"
Id- Автоинкремент
Cat_name - Название каталога
Так теперь цель по ID из таблицы SITES вытащить cat_name из таблицы SITES_CAT, причем вывести все это в <select></select>

У меня пока так:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <select name="cats">
  3. <?
  4. $sql = "
  5. SELECT sites.id, sites.cat, sites_cat.id, sites_cat.cat_name FROM sites_cat, sites where sites.id=$id";
  6. $result = mysql_query($sql);
  7. while ($itog = mysql_fetch_array($result, MYSQL_ASSOC))
  8. {
  9. echo
  10. '<option value='.$itog['cat'].'>'.$itog['cat_name'].'</option>';
  11. }
  12. ?>
  13. </select>
  14.  

По этому запросу он выводит все значения из SITES_CAT так как они там были записаны, не выделяет нужное.
А вот такой получается код
CODE (html):
скопировать код в буфер обмена
  1. <select name="cats">
  2.  
  3. <option value=2>Женская одежда</option><option value=2>Мужская одежда</option><option value=2>Детская одежда</option><option value=2>Женская обувь</option><option value=2>Электроника</option></select>
  4.  

Везде значение 2...
В данное случае ID из sites_cat и правда должен быть 2 - Мужская одежда...но что то не до конца пашет....Жду помощи
2. Zuldek - 14 Июня, 2012 - 11:27:56 - перейти к сообщению
Цитата:

CAT - цифра соответсвующая автоинкременту в таблице sites_cat

А субд сама должна об этом догадаться?

SELECT sites.id, sites.cat, sites_cat.id, sites_cat.cat_name FROM sites_cat, sites where sites.id=$id
&& sites.cat = sites_cat.id

К тому же, не забудьте, что в вашей базе данных между таблицами sites и sites_cat установлена связь 1 ко многим, и сайт у вас может быть только в одной категории. Следовательно в вашем селекте будет всего 1 элемент.
3. Elegant - 14 Июня, 2012 - 16:55:15 - перейти к сообщению
SELECT sites.id, sites.cat, sites_cat.id, sites_cat.cat_name FROM sites_cat, sites where sites.id=$id
&& sites.cat = sites_cat.id
- это помогло.
А вот на счет
Цитата:
К тому же, не забудьте, что в вашей базе данных между таблицами sites и sites_cat установлена связь 1 ко многим, и сайт у вас может быть только в одной категории. Следовательно в вашем селекте будет всего 1 элемент.

не совсем понял....
Да действительно, категория одна а как сделать что бы и остальные появились?
4. Elegant - 16 Июня, 2012 - 06:48:58 - перейти к сообщению
Люди подскажите
5. snikers987 - 16 Июня, 2012 - 11:45:40 - перейти к сообщению
http://dev[dot]mysql[dot]com/doc/refman/5[dot]0/en/join[dot]html
6. Elegant - 16 Июня, 2012 - 17:04:16 - перейти к сообщению
Не рабочая ссылка

 

Powered by ExBB FM 1.0 RC1