Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wrzucanie do bazy
Forum PHP.pl > Forum > PHP
baal82
Witam,
mam mały problem z odpowiednim wrzuceniem danych do bazy, mianowicie:
mam następujący kod w formularzu:
  1. <?php
  2. for ($i=0; $i<$ile_wierszy; $i++) {
  3. $form_block .= "
  4. <tr>
  5. <td><input type="text" name="dane[]" size=1 maxlength=3></td>
  6. <td><input type="text" name="dane[]" size=1 maxlength=3></td>
  7. <td><input type="text" name="dane[]" size=1 maxlength=3></td>
  8. <td><input type="text" name="dane[]" size=1 maxlength=3></td>
  9. <td><input type="text" name="dane[]" size=1 maxlength=3></td>
  10. .....
  11. </tr>";
  12. }
  13. ?>

$ile_wierszy podaje user. Po wciśnieciu 'wyślij' dane sa przesyłane do pliku który powinien to wszystko wrzucać do bazy aczkolwiek nie robi tego jak powinien, w bazie dane są pomieszane i się dubluą. Kod wygląda następująco:
  1. <?php
  2. foreach ($_POST['dane'] as $sWartosc => $zmienna) {
  3. $sql = mysql_query("insert into tabela (kolumny... ) values ('$zmienna','$zmienna','$zmienna',...)
  4. }
  5. ?>


czy wie ktoś jak prawidłowo napisać tą pętlę aby wrzucała wszystko tam gdzie trzeba??
dzięki i pozdrawiam
B.
Sedziwoj
Generujesz formularz z $ile_wierszy wierszami i iloma kolumnami. Pytanie Czy ważne jest w której komórce co się wpisze?
Bo chwilowo wszystkie pola nie zależnie od kolumny czy wiersza są wrzucane do jednej tablicy.
Upraszczając skrypt właściwie uniemożliwiłeś dojście co jest źle, bo chwilowo wrzucasz do bazy rekord z polami wypełnionymi jedną wartością, a takich rekordów będzie tyle ile wiersz*kolumn w formularzu.
Ponieważ tak jak zaznaczyłem nie masz możliwości stwierdzić czy to są dane np. z jednego wiersza.
baal82
Wazne jest w której komórce co sie wpisze.
Czy może masz w takim razie jakiś inny sposób na napisanie takiego formularza??
Kicok
  1. <?php
  2. for ($i=0; $i<$ile_wierszy; $i++) {
  3. $form_block .= "
  4. <tr>
  5. <td><input type="text" name="dane[{$i}][]" size=1 maxlength=3></td>
  6. <td><input type="text" name="dane[{$i}][]" size=1 maxlength=3></td>
  7. <td><input type="text" name="dane[{$i}][]" size=1 maxlength=3></td>
  8. <td><input type="text" name="dane[{$i}][]" size=1 maxlength=3></td>
  9. <td><input type="text" name="dane[{$i}][]" size=1 maxlength=3></td>
  10. .....
  11. </tr>";
  12. }
  13. ?>


  1. <?php
  2. echo('<pre>');
  3. print_r($_POST['dane']);
  4. echo('</pre>');
  5. ?>


Sprawdź czy tak będzie lepiej
baal82
To co podałeś jest OK. Wyświetla się prawidłowo, ale jak teraz to wrzucić do bazy questionmark.gif Struktura tabeli jest podobna do wypełnianego formularza:
id | jakis_indeks | kolumna1 | kolumna2 | kolumna3 | ... | kolumnax

dzieki za pomoc.
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.