Добавление массива в БД

Статус
В этой теме нельзя размещать новые ответы.

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья, помогите, пожалуйста решить проблему..
есть форма :
HTML:
<form action='update_user.php' method='post'>
<tr><td width="135">Вопрос:</td><td style="padding-left:10px;padding-top:2px;" colspan="2">
<select name="target[]" multiple>  
<option value="знач">знач 
<option value="знач 1">знач 1
<option value="знач 2"> знач 2  
<option value="знач 3">знач 3 
</select>  
 &nbsp;&nbsp;<input type='submit' value='принять'></td></tr>
</form>
Нужно занести записи в БД.
Вот обработка php
PHP:
if (isset($_POST['target']))
      {

$target = $_POST['target'];


$result4 = mysql_query("UPDATE users SET target='$target[0]' WHERE login='$old_login'",$db);}
в БД записывается "array".. В чём моя ошибка? Заранее спасибо..
 
так
PHP:
$target = $_POST['target'];
$rarg = $target[0];
$result4 = mysql_query("UPDATE users SET target='$rarg'  WHERE login='$old_login'",$db);
или так
PHP:
$result4 = mysql_query("UPDATE users SET target='" . $target[0] . "' WHERE login='$old_login'"
 
Пробовал и так.. Но всёравно пишет array.. уже 3 часа мозг ломаю.. Вообще без понятия, в чём дело..ппц..
пробовал перед запросом
выводить
exit("$rarg");
PHP:
$result4 = mysql_query("UPDATE users SET target='$rarg'  WHERE login='$old_login'",$db);
Выводит надпись исправно..
Не пойму, в чём дело..

Добавлено через 49 минут
Вот я дурак.. Не увидел ещё одну обработку $_Post($target).. Наверное от усталости.. Спасибо большое, проблема решена, тему можно закрыть..
 
2yeaahhh
Для вывода содержимого переменной, лучше использовать print_r($var) или var_dump($var)! ;)
 
Вы же используете target[] - значит будет в любом случае массив на выходе. соответственно просто обработайте его и будет Вам счастье
 
2yeaahhh
вы неправильно составили либо html-форму, либо запрос к БД
надо либо заменить
PHP:
<select name="target[]" multiple>
на
PHP:
<select name="target" multiple>
, т.е. убрать скобки, указывающие на массив

либо заменить
PHP:
UPDATE users SET target='$target[0]'
на
PHP:
UPDATE users SET target='{$target[0][0]}'
 
проверьте что вы получаете от формы print_r($_POST); и взависимоти от этого проверьте что вставляете в базу.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху