Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML]Dodanie kilka pozycji do bazy z formularza
kropamk
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Witam.
Mam kod.

  1. <form action="dodanie.php" method="post">
  2. <table class="w_zamowieniu">
  3. <tr>
  4. <td>Numer<br /></td>
  5. <td><input type="text" name="numer"></td>
  6. <td>Znak
  7. <select name="znak">
  8. <option value="">Wybierz</option>
  9. <option value="x">x</option>
  10. <option value="y">y</option>
  11. <option value="z">z</option>
  12. </select>
  13. </td>
  14. </tr>
  15. <tr>
  16. <td>Numer<br /></td>
  17. <td><input type="text" name="numer"></td>
  18. <td>Znak
  19. <select name="znak">
  20. <option value="">Wybierz</option>
  21. <option value="x">x</option>
  22. <option value="y">y</option>
  23. <option value="z">z</option>
  24. </select>
  25. </td>
  26. </tr>
  27. <td colspan="2"><input type="submit" value="Dodaj" /></td>
  28. </table>


i jak widzicie powtarzaj mi się name ponieważ chciałbym dodać dwie pozycje o tym samym name do tabeli. Czy jest to możliwe ? Czy muszę pojedynczo dodawać?

Ten post edytował kropamk 14.12.2011, 12:34:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Gdy stosujemy w formularzach tablice (jak u Ciebie numer[], znak[]) to dane przesyłane są do pliku jako tablice indeksowane domyślnie, czyli tablica $_POST będzie wyglądać tak:
  1. $_POST['numer'][0] = 'NUMER1';
  2. $_POST['numer'][1] = 'NUMER2';
  3. $_POST['znak'][0] = 'ZNAK1';
  4. $_POST['znak'][1] = 'ZNAK2';

Przedstawiona pętla foreach "porusza się" po tablicy $_POST i odpowiednio ją przetwarza, generując część zapytania MULTI INSERT. Na końcu trzeba wyciąć z tego wygenerowanego zapytania SQL zbędny przecinek (stąd substr).

Możesz na końcu pliku sprawdzić zawartość tablicy $_POST, jak i zmiennej $sql, a wtedy będzie Ci łatwiej zrozumieć. Przydatny kod:
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo $sql;


PS: W poprzedniej odpowiedzi użyłem przez pomyłkę nazwy "nazwa", a tymczasem powinienem był użyć nazwy "numer".

EDIT: Poprawiłem kod powyżej.

Ten post edytował mortus 14.12.2011, 13:56:01
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 14:22