Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> checkbox как записать в базу множественый выбор, как записать все выбраные checkbox-ы  
V
    Опции темы
Цербер
Дата 19.12.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Всем доброе время суток.
вопрос звучит так:
у меня есть форма с checkbox-ами делаю множественный выбор но в базу сохраняется только один из них последний выбранный.
Код

foreach ( $_POST['med'] as $k=>$v)
{
    print_r($k.$v);
}
показывает все выбранные значения а в базу добавляет тока одно.
и вторая часть вопроса как потом изменить запись в поле UPDATE-ом ?
делаю тоже foreach И заппрос на обновление в базу но он не обновляет=(
ну вот такая проблемка у меня  smile за ответы всех заранее благодарю!
PM MAIL ICQ   Вверх
onsql
Дата 19.12.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



В html у тебя ведь примерно так?
Код

<input type="checkbox" name="med[]" value="1" />
<input type="checkbox" name="med[]" value="2" />
<input type="checkbox" name="med[]" value="3" />

PM MAIL   Вверх
Цербер
Дата 19.12.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Код

<input type='checkbox'name='med[]' value='1'>1
<input type='checkbox'name='med[]' value='2'>2
<input type='checkbox'name='med[]' value='3'>3

foreach ( $_POST['med'] as $k=>$v)
{
    
}
$sql_med="UPDATE `medical` SET `med`='$v' WHERE login='{$_SESSION['username']}'";
if(!empty($v)) return $result3=mysql_query($sql_med)or die ($sql_med." ".mysql_error());



Это сообщение отредактировал(а) Цербер - 19.12.2007, 00:45
PM MAIL ICQ   Вверх
onsql
Дата 19.12.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



Мда... Ну последнее значение ты туда записываешь потому что именно оно лежит в переменной $v после выполнения цикла. А вот если например выбрали 2 и 3 то что же должно попасть в поле med в таблице medical по твоей задумке?
Может быть ты путаешь UPDATE и INSERT?
PM MAIL   Вверх
skyboy
Дата 19.12.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



читаешь данніе из массива в цикле.
записіваешь в БД вне цикла.
естественно, запись происходит однократно. 
где аномалия?
PM MAIL   Вверх
Цербер
Дата 19.12.2007, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



вот и я о том же как мне сделать так что бы в таблицу записывался множественный выбор и при обновлении запись изменялась! smile 
PM MAIL ICQ   Вверх
Feldmarschall
Дата 19.12.2007, 00:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Цербер,  давай-ка ты забудешь на время про форму с множественным выбором.

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

PM   Вверх
Цербер
Дата 19.12.2007, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



если без формы просто запросы на update и insert то так всё работает. а вот связать чекбокс и запросы не додумкаю никак. smile 
PM MAIL ICQ   Вверх
Feldmarschall
Дата 19.12.2007, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



отлично.
вот и напиши эти запросы здесь.
отдельно на update и отдельно - на insert

чтобы окружающие могли понять, наконец - что тебе надо.

к тому же я сомневаюсь, что "просто запросы" у тебя работают. 
как правильно заметил onsql, запрос
$sql_med="UPDATE `medical` SET `med`='$v' WHERE login='{$_SESSION['username']}'";
для множественного выбора выглядит странновато.
и ты, возможно, путаешь update и insert 

Это сообщение отредактировал(а) Feldmarschall - 19.12.2007, 01:04
PM   Вверх
onsql
Дата 19.12.2007, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



Ну так приведи пример этих работающих запросов, угадать то сложно.
PM MAIL   Вверх
Цербер
Дата 19.12.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



это запрос на INSERT, запрос сам работает, но добавляет тока последий выбраный checkbox, а в планах что бы добовлялись все выбранные.
Код

html - код
<input type="checkbox"name="med[]" value="a">a
<input type="checkbox"name="med[]" value="b">b
<input type="checkbox"name="med[]" value="c">c

php - код
foreach ($_POST['med'] as $med)
{
    
}
$result=mysql_query("INSERT INTO medical (med) VALUES ('{$med}'");


Это запрос на UPDATE. вот он вообще не работает, даже при единичном выборе checkboxa, все остальные запросы срабатывают в форме и обновляют другие записи в таблице а вот checkbox менятся не хочет.
Код

html- код
<input type='checkbox'name='med[]' value='d'> d
<input type='checkbox'name='med[]' value='e'> e
<input type='checkbox'name='med[]' value='f'> f
php - код
$sql_med="UPDATE `medical` SET `med`='$med' WHERE login='{$_SESSION['username']}'";
if(!empty($med)) return $result3=mysql_query($sql_med)or die ($sql_med." ".mysql_error());



я думаю что всё связано с foreach тока как додумать это тему понять не могу!жду вашей помощи! smile 
PM MAIL ICQ   Вверх
Feldmarschall
Дата 19.12.2007, 19:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Цитата(Цербер @  19.12.2007,  18:19 Найти цитируемый пост)
запрос сам работает, но добавляет тока последий выбраный checkbox


может быть, стоит поместить его внутрь цикла?

другое дело - непонятно, какой смысл вставлять в таблицу medical только поле med, без других полей.

Цитата(Цербер @  19.12.2007,  18:19 Найти цитируемый пост)
запрос на UPDATE. вот он вообще не работает, даже при единичном выборе checkboxa

Что значит - "не работает"? Не выполняется? не обновляет? обновляет, но не то?

Цитата(Цербер @  19.12.2007,  18:19 Найти цитируемый пост)
   smile 

Ты можешь хотеть пример хоть до пенсии. 
но пока ты человеческим языком не объяснишь, что тебе надо, пример ты получишь врядли.

Насколько я могу судить по твоим примерам, ты очень слобо сбее представляешь свою базу данных, и что от неё хочешь получить. 
тебе надо забыть про множественные селекты, про формы и про PHP
и разобраться с базой данных сначала. какие данные ты в ней хранишь, как хранишь, и какими запросами обрабатываешь.
PM   Вверх
Цербер
Дата 19.12.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Цитата

может быть, стоит поместить его внутрь цикла?

если можно покажи как ?

Цитата

Что значит - "не работает"? Не выполняется? не обновляет? обновляет, но не то?

он не обновляет хотя ошибки не выдаёт.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 19.12.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Цитата(Цербер @  19.12.2007,  22:23 Найти цитируемый пост)
если можно покажи как ?

переместить на две строчки выше.

но я совсем не уверен, что этот запрос делает что-то полезное.

Цитата(Цербер @  19.12.2007,  22:23 Найти цитируемый пост)
он не обновляет хотя ошибки не выдаёт. 


Ну выведи его хоть на экран-то. Глазами посмотри - что за запрос ты в базу пишешь. Соответствует ли он твои ожиданиям. Если они есть у тебя - эти ожидания.
PM   Вверх
onsql
Дата 19.12.2007, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



Вот например в тупую с инсертом.
Код


html - код
<input type="checkbox"name="med[]" value="a">a
<input type="checkbox"name="med[]" value="b">b
<input type="checkbox"name="med[]" value="c">c

php - код
foreach ($_POST['med'] as $med)
{
$result=mysql_query("INSERT INTO medical (med) VALUES ('".mysql_real_escape_string($med)."')");    
}


Но поскольку ты тщательно скрываешь информацию о том, какого результата ты хочешь добиться, то и угадать нужную команду весьма сложно. В случае же с update, по прежнему непонятно что ты хочешь сказать. Хочешь все выбраные значения в поле med забить? Или всё таки несколько строк обновить? Какова вообще структура таблицы medical? Без этого сложно сказать что либо...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1409 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.