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

Тема в разделе "PHP", создана пользователем yeaahhh, 23 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. yeaahhh

    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".. В чём моя ошибка? Заранее спасибо..
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    так
    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'"
     
  3. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Пробовал и так.. Но всёравно пишет array.. уже 3 часа мозг ломаю.. Вообще без понятия, в чём дело..ппц..
    пробовал перед запросом
    выводить
    exit("$rarg");
    PHP:
    $result4 mysql_query("UPDATE users SET target='$rarg'  WHERE login='$old_login'",$db);  
    Выводит надпись исправно..
    Не пойму, в чём дело..

    Добавлено через 49 минут
    Вот я дурак.. Не увидел ещё одну обработку $_Post($target).. Наверное от усталости.. Спасибо большое, проблема решена, тему можно закрыть..
     
  4. tiger.seo

    tiger.seo Писатель

    Регистр.:
    16 дек 2010
    Сообщения:
    3
    Симпатии:
    0
    2yeaahhh
    Для вывода содержимого переменной, лучше использовать print_r($var) или var_dump($var)! ;)
     
  5. inky

    inky Писатель

    Регистр.:
    25 апр 2010
    Сообщения:
    6
    Симпатии:
    1
    Вы же используете target[] - значит будет в любом случае массив на выходе. соответственно просто обработайте его и будет Вам счастье
     
  6. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    в тексте если есть переменные cделаей так
     
  7. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    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]}' 
     
  8. Dima Kos

    Dima Kos Постоялец

    Регистр.:
    1 апр 2010
    Сообщения:
    54
    Симпатии:
    6
    проверьте что вы получаете от формы print_r($_POST); и взависимоти от этого проверьте что вставляете в базу.
     
Статус темы:
Закрыта.