Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> $_POST - tablica wielowymiarowa. Jak ?, Edycja wielu wpisów w mysql na raz.
sawic
post 5.02.2006, 12:49:13
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.05.2005

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


Witam.
Robię coś takiego:

- czytam z tabeli wiersze (powiedzmy 10 wierszy, 5 kolumn),
- wpisuje je do formularza i zezwalam na edycje wszystkiego, co było zczytane,
- i teraz chcę poleceniem UPDATE zapisać do tabeli wszystkie wiersze, ale nie wiem jak przesłac przez $_POST tablicę wielowymiarową.

Ja to widzę mniejwięcej tak:
  1. <?php
  2.  
  3. $pytanie= "select * from tabela ORDER BY id WHERE jakis_warunek";
  4. $result = mysql_query($pytanie)
  5.  
  6. echo "<FORM action=test.php METHOD=post>";
  7.  
  8. while ($line=mysql_fetch_array ($result)) {
  9. echo "<INPUT TYPE=text NAME=pole_1 VALUE=".$line['kolumna1']."> 
  10.  <INPUT TYPE=text NAME=pole_2 VALUE=".$line['kolumna2'].">
  11.  <INPUT TYPE=text NAME=pole_3 VALUE=".$line['kolumna3'].">
  12.  <INPUT TYPE=text NAME=pole_4 VALUE=".$line['kolumna4'].">
  13.  <INPUT TYPE=text NAME=pole_5 VALUE=".$line['kolumna5'].">";
  14. }
  15.  
  16. echo "<INPUT TYPE=submit VALUE=dodaj></FORM><br>\n";
  17.  
  18. ?>


Gdy próbuję dodawać indeksy dla nazw pól (np. NAME=pole_1[1]), to tworzą się tablice wewnątrz tablicy z nazwą jaką miało to pole tekstowe (hehe ale napisałem, w każdym razie jak dodaje indeksy to nie działa winksmiley.jpg ).

Czy ktoś mógłby mi powiedzieć w jaki sposób się do tego zabrać ?
A może ktoś ma inną koncepcję jak zezwolić na edycję 10-ciu wierszy z bazy jednocześnie ?

Pozdrawiam
Go to the top of the page
+Quote Post
aleksander
post 5.02.2006, 13:11:56
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


<input type="text" name="wiersz1[kolumna1]" value=".$line['kolumna2']." />

moze cos takiiego?
Go to the top of the page
+Quote Post
Radarek
post 5.02.2006, 13:15:22
Post #3





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


  1. <?php
  2.  
  3. $pytanie= "select * from tabela ORDER BY id WHERE jakis_warunek";
  4. $result = mysql_query($pytanie)
  5.  
  6. echo "<FORM action=test.php METHOD=post>";
  7.  
  8. while ($line=mysql_fetch_array ($result)) {
  9. echo "<INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna1']."> 
  10.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna2'].">
  11.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna3'].">
  12.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna4'].">
  13.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna5'].">";
  14. }
  15.  
  16. echo "<INPUT TYPE=submit VALUE=dodaj></FORM><br>\n";
  17.  
  18. ?>


Dziala to na takiej samej zasadzie jak:

  1. <?php
  2.  
  3. $a = array();
  4. $a[] = "dsa";
  5. $a[] = "qwe";
  6. $a[] = "zxc";
  7. print_r($a);
  8.  
  9. ?>


A tak przy okazji pozwol (i nie obrazaj sie o to:) ), ze zwroce ci kilka uwag dotyczacych kodu html.

Dla tagow i ichaatrybutow uzywaj malych liter, chocby i z racji estetyki (kod nie wyglada wtedy jakby "krzyczal";) ), ale takze chocby i dlatego, ze w xhtmlu (ktory przeciez zastepuje juz dziadka html'a) do tagow i atrybutow uzywa sie wylacznie malych liter. Ujmuj atrybuty w podwojny cudzyslow (to samo co wyzej).
Go to the top of the page
+Quote Post
sawic
post 5.02.2006, 17:44:08
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.05.2005

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


Ok.
Działa.
Ale musiałem użyć NAME=numer_wiersza[nazwa_pola]
Czyli odwrotnie niż wcześniej zakładałem.

Pozdrawiam

Ten post edytował sawic 5.02.2006, 18:16:22
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: 6.07.2025 - 23:27