За последние 24 часа нас посетили 57118 программистов и 1683 робота. Сейчас ищет 1271 программист ...

Запрос в БД с несколькими массивами

Тема в разделе "Прочие вопросы по PHP", создана пользователем Intrerio, 10 сен 2015.

  1. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    Здравствуйте форумчане.
    В продолжении разработки системы учета для предприятия возникла проблема.

    Есть форма на сайте которая формирует информацию о клиенте и договоре который ему выставляется. В форме есть ява скрипт (jQuery) который добавляет новые грфы с ФИО днем месяцем годом (рождения) и Паспортом. Тоесть, мы вбиваем данные про одного клиента, потом нажимаем кнопочку и добавляется еще одно поле и так до бесконечности. name и id каждого поля в виде fio[] day[] month[] и т.д. При клике на кнопку обработки формы пользователя перемещаем на страницу обработчика. Вот собственно на обработчике я и завис. Изначально придумал сделать через цикл
    Код (PHP):
    1. <span class="syntaxdefault"></span><span class="syntaxkeyword">foreach(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'fio'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> as $fio</span><span class="syntaxkeyword">){</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"></span>
    но потом понял что таким образом я добавляю лишь инфу о ФИО, а другие данные не проходят по циклу. Если внутрь этого цикла добавить цикл с днем то он тупо будет дублировать по несколько раз (по количеству значений ФИО) значение дня. Мне нужно чтоб эти данные красиво попали в БД через запрос INSERT в sql. Что посоветуете?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    итерировать параллельно все массивы?
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Один раз глянь в каком виде данные в $_POST когда прислали несколько строк. Я уверен, ты поймешь как это обрабатывать.

    Подсказки:
    var_export($_POST)
    foreach ($arr as $k => $v)
     
  4. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    Спасибо за подсказку. Сделал вот так:
    Код (PHP):
    1. <span class="syntaxdefault"><br />$piposoba</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pip'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$dayosoba</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'day'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$monthosoba</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'month'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$yearosoba</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'year'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$passportosoba</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passportother'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$number </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$piposoba</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> $number</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $birthdayother </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $yearosoba</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">].</span><span class="syntaxstring">"-"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$monthosoba</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">].</span><span class="syntaxstring">"-"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$dayosoba</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $pipother </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">  $piposoba</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $passportother </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $passportosoba</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        echo</span><span class="syntaxstring">"</span><span class="syntaxdefault">$birthdayother</span><span class="syntaxstring"><br> </span><span class="syntaxdefault">$pipother </span><span class="syntaxstring"><br> </span><span class="syntaxdefault">$passportother</span><span class="syntaxstring">"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $return </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"INSERT INTO `travel_spisok` (pip, birthday, passport)<br />        VALUES ('"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$pipother</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"','"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$birthdayother</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"','"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$passportother</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"')"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$return</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">        echo</span><span class="syntaxstring">"успішно"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        else</span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo</span><span class="syntaxstring">"wrong"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault"></span>
    Все заработало и красиво добавляется в БД. Тема закрыта всем спасибо.
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а что мешает исходный массив итерировать? зачем лишние переменные создавать?
     
  6. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    Возможно я не понимаю чего то можете на примере показать?
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    $monthosoba=$_POST['month'];
    ...
    ...$monthosoba[$i]...

    логически равно просто
    ... $_POST['month'][$i]...

    и тут сразу понятно что мы итерируемся по ключу манф массива _пост. а в первом случае еще надо поискать где объявляется переменная манфасоба что дополнительно усложняется стилем кодирования "пьяная мартышка".
    и да, mysql надо срочно заменить на mysqli