1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Получаю Post. Что дальше?

Тема в разделе "PHP программирование", создана пользователем Dasha, 19 авг 2010.

  1. Dasha

    Dasha Гость

    Подскажите, плиз, такое дело - получаю из формы массив $_POST
    как его циклом записать в бд?

    например, в форме "имя", "фамилие", "телефон"
    форма заполняется несколько раз,

    приходит несколько раз данные:

    имя
    фамилие
    отчество
    имя
    фамилие
    отчество
    ....

    как их записать в базу?
     
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Как обычно подключаетесь к бд.
    И как обычно INSERT .. VALUES() записываете.
    Может перед тем, как идти на форум, стоит почитать _хоть что-нибудь_ ?
     
  3. Dasha

    Dasha Гость

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

    а прежде надо куда-то их считать, чтобы проверить.
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
     
  5. Dasha

    Dasha Гость

    Ну я читаю.

    Нигде не могу найти, как это сделать в цикле.

    Если бы нашла, где почитать, не пришла бы на форум.
     
  6. Гость

    Воспользуйся foreach

    К примеру

    foreach ($_POST['massive'] as $key => $val)
    {
    @mysql_query("INSERT INTO table VALUES (NULL,'".$val."'");
    }
     
  7. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Никогда, никогда нельзя так делать.
     
  8. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Скучно мне. Распишу-ка полностью почему так делать низя.

    Первым делом не мешает проверить на сущевствование как таковое переданного массива.
    Ченить в духе
    Код (PHP):
    if (!empty($_POST['massive'])/*&&is_array($_POST['massive']) для любителей пожестче=)*/)
    {
    //Так мы точно знаем что нам что-то передали(не выскочит нотис).
    //Далее надо сформировать правильный запрос. Никогда, НИКОГДА нельзя делать кучу инсертов циклом, т.к. скорее всего это закончиться смертью сервера.
    //А сделать как-нить так

    foreach ($_POST['massive'] as $key => $val)
    {
    $query.="('".mysql_real_escape_string($val)."'),"; //Cделаем заготовку для запроса, попутно параметр экранируется, что бы злобные хакеры не подсунули нам кавычку и прочую гадость.
    }
    $query= 'INSERT INTO table VALUES'.substr($query, 0, -1).';';//Обрежем последнюю лишнюю запятую, и в итоге получим запрос вида INSERT INTO table VALUES (),(),()..();
    if (!mysql_query($query)) //Скажу по секрету, что ставить собаку это моветон.
    {
    print "Упс, что-то сломалось";
    print mysql_error();
    }else {print "Вот и все"}
     
Загрузка...

Поделиться этой страницей