| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > checkbox как записать в базу множественый выбор |
| Автор: Цербер 19.12.2007, 00:23 | ||
| Всем доброе время суток. вопрос звучит так: у меня есть форма с checkbox-ами делаю множественный выбор но в базу сохраняется только один из них последний выбранный.
и вторая часть вопроса как потом изменить запись в поле UPDATE-ом ? делаю тоже foreach И заппрос на обновление в базу но он не обновляет=( ну вот такая проблемка у меня |
| Автор: onsql 19.12.2007, 00:32 | ||
В html у тебя ведь примерно так?
|
| Автор: Цербер 19.12.2007, 00:40 | ||
|
| Автор: onsql 19.12.2007, 00:46 |
| Мда... Ну последнее значение ты туда записываешь потому что именно оно лежит в переменной $v после выполнения цикла. А вот если например выбрали 2 и 3 то что же должно попасть в поле med в таблице medical по твоей задумке? Может быть ты путаешь UPDATE и INSERT? |
| Автор: skyboy 19.12.2007, 00:46 |
| читаешь данніе из массива в цикле. записіваешь в БД вне цикла. естественно, запись происходит однократно. где аномалия? |
| Автор: Цербер 19.12.2007, 00:50 |
| вот и я о том же как мне сделать так что бы в таблицу записывался множественный выбор и при обновлении запись изменялась! |
| Автор: Feldmarschall 19.12.2007, 00:54 |
| Цербер, давай-ка ты забудешь на время про форму с множественным выбором. И попробуешь сначала написать несколько запросов подряд в скрипте. которые делают то, что тебе нужно. А то, во-первых, окруюающим непонятно, чего ты хочешь, а во-вторых - ты сам слабо понимаешь, где у тебя связь между чекбоксами, запросами и базой данных. |
| Автор: Цербер 19.12.2007, 00:59 |
| если без формы просто запросы на update и insert то так всё работает. а вот связать чекбокс и запросы не додумкаю никак. |
| Автор: Feldmarschall 19.12.2007, 01:04 |
| отлично. вот и напиши эти запросы здесь. отдельно на update и отдельно - на insert чтобы окружающие могли понять, наконец - что тебе надо. к тому же я сомневаюсь, что "просто запросы" у тебя работают. как правильно заметил onsql, запрос $sql_med="UPDATE `medical` SET `med`='$v' WHERE login='{$_SESSION['username']}'"; для множественного выбора выглядит странновато. и ты, возможно, путаешь update и insert |
| Автор: onsql 19.12.2007, 01:04 |
| Ну так приведи пример этих работающих запросов, угадать то сложно. |
| Автор: Цербер 19.12.2007, 18:19 | ||||
это запрос на INSERT, запрос сам работает, но добавляет тока последий выбраный checkbox, а в планах что бы добовлялись все выбранные.
Это запрос на UPDATE. вот он вообще не работает, даже при единичном выборе checkboxa, все остальные запросы срабатывают в форме и обновляют другие записи в таблице а вот checkbox менятся не хочет.
я думаю что всё связано с foreach тока как додумать это тему понять не могу!жду вашей помощи! |
| Автор: Цербер 19.12.2007, 22:23 | ||||
если можно покажи как ?
он не обновляет хотя ошибки не выдаёт. |
| Автор: Feldmarschall 19.12.2007, 22:31 |
переместить на две строчки выше. но я совсем не уверен, что этот запрос делает что-то полезное. Ну выведи его хоть на экран-то. Глазами посмотри - что за запрос ты в базу пишешь. Соответствует ли он твои ожиданиям. Если они есть у тебя - эти ожидания. |
| Автор: onsql 19.12.2007, 22:58 | ||
Вот например в тупую с инсертом.
Но поскольку ты тщательно скрываешь информацию о том, какого результата ты хочешь добиться, то и угадать нужную команду весьма сложно. В случае же с update, по прежнему непонятно что ты хочешь сказать. Хочешь все выбраные значения в поле med забить? Или всё таки несколько строк обновить? Какова вообще структура таблицы medical? Без этого сложно сказать что либо... |
| Автор: Цербер 19.12.2007, 23:38 | ||||||
неа не пашет вот это.
не работает. если кто нить сталкивался с проблемой похожей оставьте здесь пример! задача скрипта. при регистрации пользователь отмечает в чекбоксе свои интересы все отмеченые галочками заносятся в базу, далее после того как юзер зарегился у него свой кабинет с его инфой он хочет обновить свои интересы и опять нажимает на галочки после чего скрипт обновляет его данные! вот чего я добиваюсь!надеюсь в этот раз все меня поняли
|
| Автор: onsql 19.12.2007, 23:54 | ||||
А если так поменять, не возникнет ли при выбранных галочка печать про mysql_query() failed?
Ну круто. И как ты предполагаешь хранить в базе несколько интересов? Приведи пример? |
| Автор: Цербер 20.12.2007, 00:37 | ||
как обычный текст... или так нельзя? or die и mysql_error всё я это пробовал! мускул ошибки не выдаёт=( |
| Автор: onsql 20.12.2007, 01:12 |
| Но ведь чудес не бывет? Либо $_POST['med'] пусто и в цикл foreach ты не попадаешь - это легко посмотреть, поставив печать внутрь цикла. Либо ты попадаешь в цикл и происходит ошибка в insert - тогда должен срабатывать die() и скрипт прерываться (может у тебя php ошибки в лог пишутся и ты их на экране не видишь). Либо ты попадаешь в цикл и ошибки при выполнении insert не происходит - тогда ты должен видеть новые строки в базе. Либо тот код, который ты запускаешь, отличается от того что ты написал в форуме. |
| Автор: Цербер 21.12.2007, 00:48 |
| короче всё с чекбохами разобрался. всем спасибо! чекбоксы это связываемая таблица! а я просто не знал об этом=) |