Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Kilka formularzy zapisanych do bazy
alien69
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2009

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


Witam.
Na początku zaznaczę że to mój pierwszy post (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam problem z wprowadzaniem danych z formularza do bazy.
Mam taki kod, który wyświetla mi wszystkie dostępne towary w magazynie. Jego celem ma być wysłanie danych o towarach zakupionych.
Ponieważ w bazie jest więcej niż jeden towar(rekord) czy jest możliwość jakiejś pętli czy czegoś aby każdy rekord z wpisaną wartością ilosc_s został zapisany do innej bazy? Zaznaczam że wprowadzenie metodą $_POST dla jednego rekordu (dodanie towaru do bazy) udało mi się wykonać. Natomiast mam problem z wieloma rekordami

  1. <?php
  2.  
  3. $connection = @mysql_connect(localhost,root,dex)
  4.  
  5. or die ('brak polaczenia');
  6. $db = @mysql_select_db('Sklep',$connection)
  7. or die ('brak polaczenia');
  8. $wynik = mysql_query("SELECT * FROM magazyn ORDER BY nazwa")
  9. or die('błąd zapytania');
  10. echo "<table cellpandding=\"2\" border=1>";
  11. echo "<tr>";
  12. echo   "<td width='120'>nazwa</td>";
  13. echo    "<td width='40'>ilosc</td>";
  14. echo    "<td width='50'>cena_n</td>";
  15. echo    "<td width='50'>cena_b</td>";
  16. echo  "</tr>";
  17. echo "</table>";
  18. if(mysql_num_rows($wynik) > 0) {
  19. echo "<table border=1>";
  20. while($r = mysql_fetch_array($wynik)) {
  21. echo "<tr>";
  22. echo ('<form action="kup.php" method="post">');
  23. echo ('<td width="120"><input type="text" value="'.$r[1].'" name="nazwa" />  </td>');
  24. echo ('<td width="120"><input type="text" value="'.$r[2].'" name="ilosc" /> </td>');
  25. echo ('<td width="120"><input type="text" value="'.$r[3].'" name="cena_n" />  </td>');
  26. echo ('<td width="120"><input type="text" value="'.$r[4].'" name="cena_b" />  </td>');
  27. echo ('<td width="50"><input type="text" value="ilość" name="ilosc_s" />  </td>');
  28. echo "</tr>";
  29. }
  30. echo "</table>";
  31.  
  32.  
  33. echo "<br />";
  34. echo ('<input type="submit" value="dodaj" />');
  35. mysql_close($connection);
  36. }
  37. ?>

Z góry dziękuję za wszelkie sugestie
Krytykę przyjmuję ze skuchą (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

W takiej postaci do bazy zostaje dodany tylko ostatni rekord.
Czyli trzeba zastosować jakiś sposób numeracji pól.
No to mam zagwozdkę.

Ten post edytował alien69 26.05.2009, 18:00:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TheaSiX
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

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


przeczytałem Twojego posta jeszcze raz.

powód dla którego przesłany zostaje tylko ostatni rekord to dlatego, że formularz otwierasz N razy, a zamykasz go tylko raz, np:

  1. </form>

Logiczne jest więc działanie, że tylko ostatni form zostanie przesłany. Ja w takich rzeczach użyłbym osobnych przycisków dla każdego forma lub normalne wyświetlanie + użycie linku kup.php?nazwa=$nazwa&cena=$cena etc. + metody GET

Oczywiście jest to trochę roboty przy kilkudziesięciu rekordach, więc to zależy od tego ile naraz chciałbyś wprowadzić do tej drugiej bazy. Żeby nie było, że wszystko wygląda tak źle, to w pliku kup.php możesz użyć header(Location:), aby po wprowadzeniu od razu przenosiło Cię z powrotem na stronę z wypisanymi wszystkimi produktami..

Ten post edytował TheaSiX 26.05.2009, 20:04:54
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: 12.10.2025 - 16:31