ФорумПрограммированиеPHP для идиотов → Добавление нескольких строк в БД

Добавление нескольких строк в БД

  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 7:50, спустя 1 минуту 34 секунды

    Уважаемые товарищи программисты прошу помощи. Очень прошу не отсылать меня к мануалам, так как я занимаюсь поделками даже не поворачивается язык назвать созданием… потому что мне это нравится, но не всегда хватает технических знаний.
    Есть у меня такой скрипт:
    JavaScript:

    <script type="text/javascript">
    function dropFile(btn){if(document.getElementById){var tr=btn;while(tr.tagName!='TR')tr=tr.parentNode;tr.parentNode.removeChild(tr);ch eckForLast();}}
    function addFile(btn){if(document.getElementById){if(document.getElementById('addtrack') ){var template=document.getElementById('addtrack').firstChild;var resultNode=template.cloneNode(true);resultNode.className='';resultNode=template .parentNode.appendChild(resultNode)
    }
    checkForLast();}}
    function checkForLast(){var btns,n,l;btns=document.getElementsByName('drop');n=btns.length;l=n-1;for(i=0;i< n;i++){btns.disabled=(i==l)?true:false;}}
    function goOut(){window.onbeforeunload=null;}
    </script>



    CSS:

    <style type="text/css">
    <!–
    .hidden { display: none; }
     –>
    </style>


    Плюс форма с двумя полями
    HTML:

    <span style="border-bottom:1px dashed #F64126; color:#F64126; font-size:80%; cursor:pointer;" onclick="addFile(this);">Add new row</span>
    <table border="0" cellspacing="0" cellpadding="0" style="margin-top:15px;">
    <tbody id="addtrack">
    <tr style="border-bottom:1px solid #e7e7e7;" class="hidden">
    <td style="width:5%;"><input type="button" onclick="dropFile(this);" value=" - " name="drop" disabled></td>
    <td style="width:40%; padding:7px 5px;"><input type="text" name="trackname" id="trackname" style="border:1px solid #e7e7e7; width:80%" /></td>
    <td style="width:20%;"><input name="time" type="text" size="8" style="border:1px solid #e7e7e7;" /></td>
    <td></td>
    </tr>
    <tr style="border-bottom:1px solid #e7e7e7;" class="f_file">
    <td style="width:5%;"><input type="button" onclick="dropFile(this);" value=" - " name="drop" disabled></td>
    <td style="width:40%; padding:7px 5px;"><input type="text" name="trackname" id="trackname" style="border:1px solid #e7e7e7; width:80%" /></td>
    <td style="width:20%;"><input name="time" type="text" size="8" style="border:1px solid #e7e7e7;" /></td>
    <td></td>
    </tr>
    </tbody>
    </table>

    Прошу помочь со скриптом добавления значений этих полей в базу. Как добавить несколько полей простой формы я знаю. А как добавить в этом случае ничего подходящего не нашел что бы почитать с хорошим примером.

    Если кто то сможет помочь и объяснить доходчиво как добавляются поля при таком варианте скажу огромное спасибо.

    Спасибо всем кто откликнется и поможет.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 24 июля 2009 г. 7:48, спустя 23 часа 58 минут 26 секунд

    возьми код в соответствующие теги, тогда посмотрим, а то тяжело разобраться
    Спустя 83 сек.
    там есть html, js
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 8:11, спустя 22 минуты 40 секунд

    @lexaka, попробуй jquery

    там можно сделать сериализацию формы примерно так $("#form_id").serizlize() вернет тебе все объект всех {input_name:"value"}
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 8:14, спустя 3 минуты 17 секунд


    @lexaka, попробуй jquery

    там можно сделать сериализацию формы примерно так $("#form_id").serizlize() вернет тебе все объект всех {input_name:"value"}

    Я использую не jquery а SPRY. Мне лично он проще и больше нравится. Этот вариант js я как образец для того что бы было понятно о чем речь.
    ЕСли не сложно образец скрипта на моем примере. Я не программист делаю в свободное время и для души. Нравится мне это. Но моих познаний катастрофически не хвататет.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 8:15, спустя 1 минуту 10 секунд

    CTAPbIu_MABP, не, человеку нужно сделать добавку в БД. но у него обе формы с одинаковыми именами полей. Следовательно, он их хрен занесет все в базу, так как это ппц :) Нужно создавать имена полуй разными (в смысле, когда одинаковые поля, как у ТСа name="trackname" id="trackname").
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 8:17, спустя 2 минуты 18 секунд


    CTAPbIu_MABP, не, человеку нужно сделать добавку в БД. но у него обе формы с одинаковыми именами полей. Следовательно, он их хрен занесет все в базу, так как это ппц :) Нужно создавать имена полуй разными (в смысле, когда одинаковые поля, как у ТСа name="trackname" id="trackname").

    Насколько я смог разобраться в свой проблеме имена дествительно надо делать примерно так name[] value… name[] value…
    Форма одна просто поля динамически добавляются.
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 8:17, спустя 23 часа 59 минут 36 секунд

    создавай имена name="trackname[]" тогда получишь массив $_POST['trackname'][0]
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 8:20, спустя 3 минуты 1 секунду


    создавай имена name="trackname[]" тогда получишь массив $_POST['trackname'][0]

    И с этим я тоже разобрался :) Но это тот самый тупик к которому я и подошел. Дальше него двинуться не могу. Потому как не могу никак понять как эти name[] добавить в базу.
    Тем более как я понимаю они должны в бд создавать каждая отдельную строчку а не в одно поле…
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 8:32, спустя 11 минут 52 секунды

    циклом проходишься по этим данные и по очереди добавляешь
    в чем проблема?
    foreach ($_POST['fieldname']) …
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 8:42, спустя 10 минут 3 секунды

    @lexaka,


    $sql = "INSERT INTO (name,pass) VALUES"
    for($i=0,$j=count($_POST['name']);$i<$j;$i++)
    $sql .= "('{$_POST['name'][$i]}','{$_POST['pass'][$i]}')"
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 10:14, спустя 1 час 32 минуты 27 секунд


    @lexaka,


    $sql = "INSERT INTO (name,pass) VALUES"
    for($i=0,$j=count($_POST['name']);$i<$j;$i++)
    $sql .= "('{$_POST['name'][$i]}','{$_POST['pass'][$i]}')"


    Буду пробывать. Очень надеюсь поможет. За ранее спасибо.
    P.S. Видимо UPDATE происходит по такому же алгоритму? или как то иначе?
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 10:23, спустя 8 минут 14 секунд

    @lexaka, апдейт чуть сложнее но идея таже
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 10:24, спустя 1 минуту 36 секунд


    @lexaka, апдейт чуть сложнее но идея таже

    Если можно про сложности расскажи. Что бы не возвращаться к этому вопросу. ЗАто я теперь четко понял как этот вариант работает… Я как та собака умом понимаю сказать не могу. :)
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 июля 2009 г. 11:00, спустя 35 минут 25 секунд

    @lexaka, при апдейте придется обновлять по одной строке за запрос, а вставлять можно сколько угодно сразу. вот и вся разница
  • @lexaka

    Сообщения: 72 Репутация: N Группа: Кто попало

    Spritz 24 июля 2009 г. 11:03, спустя 2 минуты 51 секунду


    @lexaka, при апдейте придется обновлять по одной строке за запрос, а вставлять можно сколько угодно сразу. вот и вся разница

    извини за несообразительность… как это выглядит? всмысле при UPDATE

Пожалуйста, авторизуйтесь, чтобы написать комментарий!