Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: <select multiple> в MYSQL
 
 автор: gOFREe   (12.09.2011 в 23:16)   письмо автору
 
 

Я все бьюсь над одной задачей )

форма отправляется методом POST

<select name="category[]" multiple>
<option value="1">Ягоды</option>
<option value="2">Фрукты</option>
<option value="3">Овощи</option>
</select>
<select name="berries[]" multiple>
<option value="1">Клубника</option>
<option value="2">Земляника</option>
</select>
<select name="fruit[]" multiple>
<option value="1">Яблоки</option>
<option value="2">Бананы</option>
<option value="3">Персики</option>
</select>
<select name="vegetables[]" multiple>
<option value="1">Помидоры</option>
<option value="2">Огурцы</option>
</select>

дамп

CREATE TABLE IF NOT EXISTS `category` (
  `id_category` int(4) NOT NULL,
  `category_name` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `second_category` (
  `id_category` int(4) NOT NULL,
  `category_name` varchar(255) NOT NULL,
  `id_second_category` int(4) NOT NULL,
  `second_category_name` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Как все это дело обработать что бы добавить в базу?


<?
if($_POST['category']) {
     foreach (
$_POST['category'] as $cat) {
//insert
    
foreach ($_POST['berries'] as $berr) {
//insert
            
}
     foreach (
$_POST['fruit'] as $frut) {
//insert
            
}
     foreach (
$_POST['vegetables'] as $vega) {
//insert
            
}
            }
}
?>


Или надо раскидать массив наподобие $category[$id][$id_cat], но вот с этим я пока не совсем разобрался..

  Ответить  
 
 автор: cheops   (13.09.2011 в 09:02)   письмо автору
 
   для: gOFREe   (12.09.2011 в 23:16)
 

Не очень понятно, какие данные отправляются в первую таблицу, а какие во вторую?

  Ответить  
 
 автор: gOFREe   (13.09.2011 в 11:00)   письмо автору
 
   для: cheops   (13.09.2011 в 09:02)
 

В первую из селекта category, во вторую отправляются все остальные, если они выбраны.

  Ответить  
 
 автор: cheops   (13.09.2011 в 11:06)   письмо автору
 
   для: gOFREe   (13.09.2011 в 11:00)
 

Их нужно как-то связать? Т.е. у пользователя должна быть возможность поместить помидоры в ягоды? Или первый список нужен просто для активации других списков средствами JavaScript?

  Ответить  
 
 автор: gOFREe   (13.09.2011 в 11:52)   письмо автору
 
   для: cheops   (13.09.2011 в 11:06)
 

Все правильно, первый список в зависимости от категории активирует другие, если выбраны ягоды, то показывается список с клубникой. Что бы добавить одну категорию и одну подкатегорию, я уже разобрался. а как быть если выбрано допустим две категории и три подкатегории?
Мой пример с foreach этому не помошник...

  Ответить  
 
 автор: gofree   (14.09.2011 в 19:22)   письмо автору
 
   для: gOFREe   (13.09.2011 в 11:52)
 

Есть подсказки? (

  Ответить  
 
 автор: cheops   (14.09.2011 в 20:36)   письмо автору
 
   для: gofree   (14.09.2011 в 19:22)
 

Тэги select формируются циклами на основании каких-то других таблиц?

  Ответить  
 
 автор: gOFREe   (14.09.2011 в 21:15)   письмо автору
 
   для: cheops   (14.09.2011 в 20:36)
 

да.

  Ответить  
 
 автор: Lotanaen   (15.09.2011 в 09:30)   письмо автору
 
   для: gOFREe   (14.09.2011 в 21:15)
 

вы же форму из БД выводите? используйте значение ID в форме например так:

<select name="category[]" multiple>
<option value="1">Ягоды</option>
<option value="2">Фрукты</option>
<option value="3">Овощи</option>
</select>
<select name="berries[]" multiple>
<option value="4">Клубника</option>
<option value="5">Земляника</option>
</select>
<select name="fruit[]" multiple>
<option value="6">Яблоки</option>
<option value="7">Бананы</option>
<option value="8">Персики</option>
</select>
<select name="vegetables[]" multiple>
<option value="9">Помидоры</option>
<option value="10">Огурцы</option>
</select>

  Ответить  
 
 автор: gOFREe   (15.09.2011 в 13:06)   письмо автору
 
   для: Lotanaen   (15.09.2011 в 09:30)
 

Допустим.. а далее?
Только алгоритм такой. Для селекта с именем category данные берутся из одной тыблицы. А для остальных из другой. Т.е. получается так:

<select name="category[]" multiple> 
<option value="1">Ягоды</option> 
<option value="2">Фрукты</option> 
<option value="3">Овощи</option> 
</select> 
<select name="berries[]" multiple> 
<option value="1">Клубника</option> 
<option value="2">Земляника</option> 
</select> 
<select name="fruit[]" multiple> 
<option value="3">Яблоки</option> 
<option value="4">Бананы</option> 
<option value="5">Персики</option> 
</select> 
<select name="vegetables[]" multiple> 
<option value="6">Помидоры</option> 
<option value="7">Огурцы</option> 
</select>


А как дальше, до сих пор голову грею..

  Ответить  
 
 автор: Lotanaen   (15.09.2011 в 13:14)   письмо автору
 
   для: gOFREe   (15.09.2011 в 13:06)
 

Данные вы берете из двух таблиц при выводе формы, а в какую таблицу(ы) вы делаете запись?
Я так полагаю, что первые две таблицы связаны?

  Ответить  
 
 автор: Lotanaen   (13.09.2011 в 09:27)   письмо автору
 
   для: gOFREe   (12.09.2011 в 23:16)
 

ваш вариант должен работать, только не все браузеры это поддерживают... пробуйте...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования