Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie wielu rekordów do jednej tabeli, Jak mogę dodać wiele rekordów do jednej tabeli jednym zapytaniem.
marsta
post 23.02.2008, 10:13:19
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
potreb
post 23.02.2008, 10:20:19
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. while ($a < 0)
  3. {
  4. $zapytanie = "";
  5. }
  6. ?>


Pętlą dodasz do bazy jednym zapytaniem dane

Ten post edytował potreb 23.02.2008, 10:22:59


--------------------

Go to the top of the page
+Quote Post
phpion
post 23.02.2008, 10:34:54
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.

Ten post edytował phpion 23.02.2008, 10:36:09
Go to the top of the page
+Quote Post
marsta
post 23.02.2008, 11:04:47
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
-Wieviór-
post 23.02.2008, 11:36:44
Post #5





Goście







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.
Go to the top of the page
+Quote Post
Hazel
post 23.02.2008, 13:50:25
Post #6





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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>';?>


Ten post edytował Hazel 23.02.2008, 13:50:55


--------------------
Go to the top of the page
+Quote Post
phpion
post 23.02.2008, 14:57:33
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
marsta
post 23.02.2008, 22:50:37
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Wszystkim wielkie dzięki za pomoc. smile.gif
Go to the top of the page
+Quote Post
smialy
post 24.02.2008, 01:17:28
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 4
Dołączył: 23.05.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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

Ten post edytował smialy 24.02.2008, 01:24:21


--------------------
openSuse, Eclipse i Aptana - daje rade
Go to the top of the page
+Quote Post
marsta
post 24.02.2008, 10:22:06
Post #10





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:44