Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z obsługą dużego formularza
Forum PHP.pl > Forum > Przedszkole
weisu
Problem jest następujący, mam formularz (nie, nie chciało mi się go rozpisywać, ale tak mi wygodniej było):
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  2.  
  3.  
  4. <br /><br /><br />
  5.  
  6. <tr><td colspan="4">Ceny</td></tr>
  7. </thead>
  8. <tr>
  9. <td><input type="text" name="0a"></td>
  10. <td><input type="text" name="0b"></td>
  11. <td><input type="text" name="0c"></td>
  12. <td><input type="text" name="0d"></td>
  13. </tr>
  14. <tr>
  15. <td><input type="text" name="1a"></td>
  16. <td><input type="text" name="1b"></td>
  17. <td><input type="text" name="1c"></td>
  18. <td><input type="text" name="1d"></td>
  19. </tr>
  20. <tr>
  21. <td><input type="text" name="2a"></td>
  22. <td><input type="text" name="2b"></td>
  23. <td><input type="text" name="2c"></td>
  24. <td><input type="text" name="2d"></td>
  25. </tr>
  26.  
  27. //przyciąłem
  28.  
  29.  
  30. <tr>
  31. <td><input type="text" name="11a"></td>
  32. <td><input type="text" name="11b"></td>
  33. <td><input type="text" name="11c"></td>
  34. <td><input type="text" name="11d"></td>
  35. </tr>
  36. </tbody>
  37.  
  38.  
  39.  
  40. <div align="center"><input type="submit" name="submit" value="Dodaj" /></div>
  41.  
  42.  
  43. </form>


Teraz muszę odczytać te rekordy i zapisać do bazy danych. Starałem się zapisać to do tablicy za pomocą pętli for a potem do bazy ale nic z tego, mógłby ktoś wytłumaczyć (najlepiej łopatologicznie) jak należy to zrobić, albo napisać i objaśnić taką pętlę, bo ja tak kombinowałem że żal się robi takich głupot..
piotrooo89
robisz to tak że w pliku php w twoim wypadku na tej samej stronie włączasz php i robisz tak:

  1. <?php
  2. $0a = $_POST['0a'];
  3. $0b = $_POST['0b'];
  4. //itd...
  5.  
  6. $sql = "INSERT INTO tabela SET
  7. nazwa_kol='$0a',
  8. nazwa_kol2='$0b'";//itd....
  9.  
  10. ?>


wsio.
weisu
Tak, do tego doszedłem właśnie też, ale czy nie dałoby się zrobić tego za pomocą pętli? Przy znacznie większej tablicy zabawa w coś takiego jest niemożliwa.
cbagov
zamiast
<input type="text" name="11d">

czyli name="11d"

zmien na

name="tablica[]"

czyli
<tr>
<input type="text" name="tablica[]">
<input type="text" name="tablica[]">
<input type="text" name="tablica[]">

<TR>
<input type="text" name="tablica2[]">
<input type="text" name="tablica2[]">
<input type="text" name="tablica2[]">

itd.


a potem odczytasz $tablica w PHP z $_POST lub $_GET zaleznie jak tam sobie wyslesz.
.radex
Od kiedy nazwa zmiennej w php może się zaczynać od cyfry?
weisu
cbagov szkoda że wcześniej Cie na forum nie było, miałbym znacznie łatiwej haha.gif

radex_p z tego co wiem nie może, dlatego rozwiązałem to w ten sposób:

  1. <?php
  2. $tabela[] = $_POST['0a'];
  3. $tabela[] = $_POST['0b'];
  4. $tabela[] = $_POST['0c'];
  5. $tabela[] = $_POST['0d'];
  6.  
  7. $tabela[] = $_POST['1a'];
  8. $tabela[] = $_POST['1b'];
  9. $tabela[] = $_POST['1c'];
  10. $tabela[] = $_POST['1d'];
  11.  
  12. // [...]
  13.  
  14. $tabela[] = $_POST['11a'];
  15. $tabela[] = $_POST['11b'];
  16. $tabela[] = $_POST['11c'];
  17. $tabela[] = $_POST['11d'];
  18. ?>


Nie, nie chciało mi się tego pisać dlatego wygenerowałem se to programikiem w ruby haha.gif
cbagov
Ale cos tu pomieszane, po co to przypisanie ? Przeciez tablica w formie sie sama tworzy.
weisu
W Twoim przykładzie tak smile.gif U mnie nie, bo już mi się zmieniać nie chciało, aczkolwiek zapamiętam sobie tą metode na przyszłość biggrin.gif Dzięki!
Athlan
@radex_p, w tym przypadku name jest nazwą klucza tablicą $_POST, a nie nazwą zmiennej.
.radex
Athlan - wiem, ale piotrooo89 napisał tak:

  1. <?php
  2. (...)
  3. $0a = $_POST['0a'];
  4. $0b = $_POST['0b'];
  5. (...)
  6. ?>


smile.gif
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.