Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie wielu rekordów do bazy
Forum PHP.pl > Forum > Przedszkole
i105n2k
Cześć,

mam formularz którego liczba wierszy jest zmienna, w każdym wierszu mam pobraną z bazy nazwę punktu i obok textbox w którym należy wpisac liczbę lub komentarz. Punktów na raz pobieram wiele i wiele komentarzy naraz chciałbym dodać. Wynikiem działania skryptu powinno być dodanie wszystkich par tms_punkty_id tms_wysylka_ile do tabeli

|id|tms_punkty_id |tms_wysylka_ile|
|1|Punkt|Wartość

Na podstawie googlowania za "dodawaniem wielu rekordów" stworzyłem poniższe dwa pliki,

wysylka.php
  1. echo '<center>
  2. <form action="wysylka2.php" method="post">';
  3.  
  4. while($r = mysql_fetch_assoc($wynik)) {
  5. echo "<tr>
  6. <td>".$r['pole']."</td>";
  7. echo '<td><input type="text" class="textbox" name="wysylka['.$r['tms_punkty_id'].']" value="'.$r['tms_wysylka_ile'].'" ></td></tr>';
  8. }
  9. echo '<TR><TD colspan=3><CENTER><input type="submit" value="Zapisz" /></form></CENTER></TD></TR></table>';


wysylka2.php
  1. <?php
  2. // Połaczenie z bazą danych
  3. require "../connection.php";
  4. connection();
  5.  
  6.  
  7. $a = $_POST['wysylka'];
  8.  
  9. print_r ($a);
  10.  
  11. foreach ($a as $tms_punkty_id => &$tms_wysylka_ile)
  12. {
  13. $wynik = mysql_query("INSERT INTO tms_wysylka (tms_punkty_id, tms_wysylka_ile) VALUES ($tms_punkty_id, $tms_wysylka_ile)")
  14. or die('Błąd zapytania'.mysql_error());
  15.  
  16. }
  17. ?>


Wpisując w pierwszego textboxa tekst AA po wysłaniu formularza dostaję komunikat: Błąd zapytania Unknown column 'AA' in 'field list'. Jak to uruchomić ?
tomi1985
ponieważ

  1. name="wysylka['.$r['tms_punkty_id'].']"


kiedy wpiszesz tam AA i klikniesz zapisz/wyslij what ever

zmieni się nazwa kolumny z id na zmienioną treść a w tym wypadku AA której to nie masz w bazie o czym sugeruje komunikat błędu.

Najwygodniej będzie jak dodasz drugiego inputa z wartością id

a tak z innej beczki

nie uzywa sie już znaczników

  1. center


w html tylko obrabia się to wszystko w css'ie wink.gif
i105n2k
Ok, jak w takim razie przerobić formularz wysylka.php żeby nazwa każdego textboxa była generowana na podstawie zmiennej z bazy danych ?

Mam tabelę trasa

trasa|punkt|
--------------
1|Katowice
1|Kraków

Potrzebuję pobrać z tabeli Trasa wszystkie punkty i następnie do każdego z nich dopisać w textboxie ilośc paczek do wysłania a na konec zpaisać to do tabeli Paczki

paczki

punkt|ilość
-------------
Katowice|2
-------------
Kraków|3
tomi1985
ja osobiście pobrał bym wszystkie rekordy z bazy do tablicy

np.

  1. $this->someTable[$i++] = array (
  2.  
  3. trasa = > punk
  4.  
  5. );


a następnie ją wywyłał w tabelce tak jak chciałeś za pomocą np. pętli foreach

po czym dodał jedno pole w tabelce

  1. <td><input type="numeric" name="countPack" /></td>


i zapisał to w tablicy Paczki

aaaa

fajny efekt byłby przy jquery i ajaxa wink.gif
i105n2k
Mógłbyś pomóc kawałkiem kodu? Moja wiedza i doświadczenie sa na etapie "raczkującym".
tomi1985
masz info na pw wink.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.