Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie wielu rekordów do jednej tabeli
Forum PHP.pl > Forum > Przedszkole
marsta
Mam następujący problem:
Poniżej przedstawiam kod wynikowy danych formularza który generuję poprzez JavaScript,
do tego mam jedną tabelę w której umieszczam identyfikator zamówienia i dwie poniższe dane tj. $kod_towaru oraz $ilość. I mam pytanko? sadsmiley02.gif jak do jednej tabeli dodać w jednym zapytaniu wiele rekordów.
Bardzo proszę o sugestie.
Kod
<pre style="white-space: -moz-pre-wrap;"><div id="formTag"><form action="zamow_teraz.php" method="post"><div id="divTag"><div id="tableTag"><div id="tbodyTag"><div id="trTag"><div id="tdTag"><div id="divTag"><div id="divTag"><div id="spanTag">    <input size="3" name="kod_towaru" value="A15" type="text"></div><div id="spanTag"><div id="pTag">    <input name="ilosc" size="3" maxlength="3" type="text">
  
   </div></div></div><div id="divTag"><div id="pTag">    <input size="3" name="kod_towaru" value="C12" type="text">
       <input name="ilosc" size="3" maxlength="3" type="text">
  
   </div></div><div id="divTag"><div id="pTag">    <input size="3" name="kod_towaru" value="D08" type="text">
       <input name="ilosc" size="3" maxlength="3" type="text">
  
   </div></div></div></div></div></div></div></div>    <input id="przycisk_zamow" value="Zamów" type="submit">
   </form>
  
   </div>
Pozdrawiam.
Mariusz
potreb
  1. <?php
  2. while ($a < 0)
  3. {
  4. $zapytanie = "";
  5. }
  6. ?>


Pętlą dodasz do bazy jednym zapytaniem dane
phpion
Cytat(potreb @ 23.02.2008, 12:20:19 ) *
  1. <?php
  2. while ($a < 0)
  3. {
  4. $zapytanie = "";
  5. }
  6. ?>


Pętlą dodasz do bazy jednym zapytaniem dane

...i w wyniku otrzymujesz X zapytań do bazy danych. Bardzo mądrze...

Jest na to lepszy sposób:
  1. INSERT INTO tabela (pole1, pole2, ... pole N) VALUES
  2. ("wartosc11", "wartosc12", ... "wartosc1N"),
  3. ("wartosc21", "wartosc22", ... "wartosc2N"),
  4. ...
  5. ("wartoscM1", "wartoscM2", ... "wartoscMN");

czyli wpisanie wielu rekordów przy użyciu jednego INSERTa.
marsta
Problem w tym phpion że ten twój sposób jest dobry o ile zna się ilość zmiennych które trzeba dodać. W moim przypadku jest to problem bo może ich być 1 albo 100.
A może ktoś wie jak z javascript przekazać tablicę do PHP. Bo mam z tym spore problemy wstydnis.gif
Mariusz
Wieviór
Sposób Phpion jest dobry, zrób tylko while() i dodawaj treść do zmiennej przez:

  1. <?php
  2. $zmienna .= '';
  3. ?>


Potem nie zapomnij zamknąć zapytania i je wywołaj.
Hazel
Cytat(marsta @ 23.02.2008, 11:04:47 ) *
A może ktoś wie jak z javascript przekazać tablicę do PHP.


Cos w rodzaju:
Kod
<script type="text/javascript">
var tbl = new Array();
tbl[0] = 'Polska';
tbl[1] = 'Niemcy';
tbl[2] = 'Francja';
</script>
<?php
$string = '<script type="text/javascript">document.write(tbl);</script>';?>
phpion
Cytat(marsta @ 23.02.2008, 13:04:47 ) *
Problem w tym phpion że ten twój sposób jest dobry o ile zna się ilość zmiennych które trzeba dodać. W moim przypadku jest to problem bo może ich być 1 albo 100.

Po prostu zapytanie tworzysz w pętli dodając odpowiednie wartości (czyli sekcję (pole11, pole12, ... pole1N)), a dopiero następnie je wykonujesz. W zasadzie to potrzebujesz 2 pętle. 1 przechodzącą po polach/kolumnach tabeli, a drugą po osobnych rekordach.
marsta
Wszystkim wielkie dzięki za pomoc. smile.gif
smialy
Kod
var tbl = new Array();
tbl[0] = 'Polska';
tbl[1] = 'Niemcy';
tbl[2] = 'Francja';

Można też krócej o ile pamiętam:
Kod
var tbl =['Polska', 'Niemcy', 'Francja'];


Poza tym po co robić tyle zamieszania z inputami. Nie lepiej:
Kod
<input name="towar[A12]" size="3" maxlength="3" type="text" />
<input name="towar[D08]" size="3" maxlength="3" type="text" />

Szybciej i łatwiej. Otrzymujesz w PHP tablice:
Kod
$_POST['towar'] = array(
   'A12'=>1,
   'D08'=>3
);

a to już proste i przyjemne do wrzucenia winksmiley.jpg
marsta
Wielkie dzięki smialy, patrząc na twój przykład naprawdę nie wiem po chorobę nasiekałem tam tyle input-ów sciana.gif , no ale wiesz jak jest w przedszkolu wstydnis.gif .
To raz jeszcze chciałem wszystkim serdecznie podziękować.
Pozdrawiam.
Mariusz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.