Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dynamiczny formularz - upload do bazy
Forum PHP.pl > Forum > Przedszkole
lutador
Witam,

w zaleznosci od wartosci zmiennej $zadan, wyswietla mi sie odpowiednia liczba input'ow. Teraz nie wiem jak napisac INSERT do bazy zeby wrzuci te dane do tabeli.. Tabela ma kolumny id_zad (auto increment), tresc_zad, termin_zad

  1. <form action="test.php" method="POST">
  2. <table width="400" border="0">
  3.  <tr>
  4.  <td>Nr zad.</td>
  5.  <td>Zadanie</td>
  6.  <td>Termin wykonania</td>
  7.  
  8. </tr>
  9.  <?
  10. $zadan = $_GET['zadanie'];
  11.  
  12.  for($index=0;$index<$zadan;$index++) {
  13. $zad = $index + 1;
  14. $termin = $index + 100;
  15.  
  16. echo " <tr>
  17. <td> $zad.  </td>
  18. <td><textarea name=\"$zad\" cols=\"25\" rows=\"\"></textarea></td>  
  19. <td valign=\"top\"><input type=\"text\" name=\"$termin\" size=\"9\" maxlength=\"10\"></td></tr> ";
  20. }
  21.  
  22. ?>
  23. <tr>
  24. <td><input type="submit" name="add" value="Wyslij zadania"></td>
  25. <td> </td>
  26. </tr>
  27. </form>
  28. </table>

dzieki za pomoc

pozdrawiam
Wieviór
Rozumiem, że każdy następny input to ma być nowy rekord, tak?
lutador
tak
Wieviór
No to generalnie tak jak robiłem pętlę for dla wyświetlania kolejnych inputów, tak samo robisz pętlę for dla wstawiania rekordów do bazy. Najlepiej zrób tak:

Każdy kolejny input nazywaj kolejną liczbą: input_1, input_2, input_3.

Potem daj pętlę for opartą na $zadań, w środku dopisuj tekstowo zapytanie w zmiennej $sql.

Dopiero jak skończy się pętla, zrób mysql_query(), w ten sposób tylko raz będziesz ładował do bazy.
lutador
moglbys napisac jak bedzie wygladac mniej wiecej ta petla, bo nie umiem sobie z tym poradzic... :/
nowotny
Ja bym to zrobił tak:
Najpierw trzeba trochę zmienić formularz:
  1. <td><textarea name=\"zadania[$zad][tekst]\" cols=\"25\" rows=\"6 \"></textarea></td>
  2. <td valign=\"top\"><input type=\"text\" name=\"zadania[$zad][termin]\" size=\"9\" maxlength=\"10\"></td></tr> ";


Potem przetwarzamy tablicę $_POST['zadania']:
  1. <?php
  2. $query='ISERT INTO `nazwa_tabeli` (`tresc_zad`, `termin_zad`) VALUES ';
  3. foreach($_POST['zadania'] as $zadanie){
  4. $query.='("'.$zadanie['tekst'].'","'.$zadanie['termin'].'"), ';
  5. }
  6. $query=substr($query,0,-1);
  7. mysql_query($query);
  8. ?>
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.