Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zle wykonanie WHILE i wpisanie do bazy
roghatt
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


Najpierw kawałek kodu
  1. <FORM ACTION="index.php?top=<?=$ADM_TOP_FAKTURA?>" METHOD="POST" enctype="multipart/form-data">
  2. <?
  3. echo "<table border=\"0\" cellspacing=\"4\">";
  4. echo "<tr>";
  5. echo "<td style=\"background-color: #dffcf8\" colspan=\"3\">";
  6. ?>
  7. Wpisz numer faktury: <INPUT TYPE="TEXT" NAME="nrfaktury" size="25">
  8. <?
  9. echo "</td>";
  10. echo "</tr>";
  11. while($row=mysql_fetch_array($wynik1))
  12. {
  13. $id=$row['id'];
  14. $nazwa= $row['nazwa'];
  15. $cenan = $row['cenan'];
  16. $podatek = $row['podatek'];
  17. $nrfaktury = $_POST['nrfaktury'];
  18.  
  19. echo "<tr>";
  20. echo "<td style=\"background-color: #dffcf8\">";
  21. echo $nazwa;
  22. echo "</td>";
  23. echo "<td style=\"background-color: #dffcf8\">";
  24. echo "$cenan";
  25. echo " zl.";
  26. echo "</td>";
  27. echo "<td style=\"background-color: #dffcf8\">";
  28. ?>
  29. Wpisz ilosc: <INPUT TYPE="TEXT" NAME="ilosc" size="5">
  30. <?
  31. $ilosc = $_POST['ilosc'];
  32. echo "</td>";
  33. echo "</tr>";
  34.  
  35. if ($nrfaktury) {
  36. mysql_query ("INSERT INTO faktura VALUES (' ','$nazwa', '$cenan', '$podatek', '$pkwiu', '$jm','$kreska','$nrfaktury','$ilosc');");
  37. if (mysql_affected_rows()>0) echo("Faktura dodana.");
  38. $result=dbquery($sql,$conn);
  39.  
  40. }
  41. }
  42.  
  43. echo "</table>";
  44. ?>
  45. <input type="hidden" name="test" value="test"><br>
  46. <input type="submit" value="&nbsp;&nbsp;&nbsp;&nbsp;Dodaj&nbsp;&nbsp;&nbsp;&nbsp;">
  47. </form>


Formularz wygląda tak.
Na samej górze pole do wpisania nr faktury.
Pod spodem jedno pod drugim spis produktów nazwa i cena (pobierane z innej tabeli). Obok produktu pole na wpisanie ilości.

Wszystko po kliknięciu na "Dodaj" powinno być wpisane do drugiej tabeli. Wszystko pięknie mi wpisuje, nazwę, cenę, i inne parametry. Numer faktury mi też wpisuje do tabeli, ale w polu "ilość" wpisywana jest ostatnia wartość wpisana przy ostatnim produkcie.
Czyli np. jak wpiszę przy produktach ilość:
Produkt1 ilosc:5
Produkt2 ilosc:6
Produkt3 ilosc:7

i w tabeli w polu ilość wszędzie jest cyfra 7. Po kliknięciu w "dodaj" wywołana jest ta sama strona z formularzem bo w nim znajduje się funkcja wpisywania do bazy.
Nie mogę sobie poradzić jedynie z wpisywaniem tej ilości przy każdym produkcie.
Mam 5 produktów i wyświetla się 5 razy "Faktura dodana" więc 5 razy jest do bazy dodawane ale jak pisałem wpisuje w polu "ilość" wszędzie ostatnią wartość.

Dodatkowo jaki parametr dodać aby nie wpisywało do bazy produktu w której nic nie wpiszemy w polu "ilość"
Myślałem, że:
  1. if ($ilosc) {
  2. mysql_query ("INSERT INTO faktura VALUES (' ','$nazwa', '$cenan', '$podatek', '$pkwiu', '$jm','$kreska','$nrfaktury','$ilosc');");
  3. if (mysql_affected_rows()>0) echo("Faktura dodana.");
  4. $result=dbquery($sql,$conn);
  5. }

ale coś nie do końca działa.
Proszę o wskazówki.

Ten post edytował freelinkz 7.09.2009, 20:43:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nexis
post
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


I posprzątaj swój kod trochę - np.:
  1. <?php
  2. if (isset($_POST['nrfaktury'], $_POST['ilosc'])) {
  3. foreach ($_POST['ilosc'] as $id) {
  4. $query = sprintf("INSERT INTO `faktura` VALUES ('%d')", $id); // tutaj dodaj dodatkowe pola
  5. mysql_query($query) or exit(mysql_error());
  6. }
  7. }
  8. ?>
  9. <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
  10. <table id="uzywaj_stylow_css">
  11. <tr>
  12. <td>
  13. Wpisz numer faktury: <input type="text" name="nrfaktury" />
  14. </td>
  15. </tr>
  16. <?php
  17. $query = "Twoje zapytanie MySQL";
  18. $query = mysql_query($query) or exit(mysql_error());
  19. while ($row = mysql_fetch_array($query)) {
  20. printf('<tr><td>%s</td><td>%01.2f zł</td><td><input type="text" name="ilosc[%d]" /></td></tr>', $row['nazwa'], $row['cenan'], $row['id']);
  21. }
  22. ?>
  23. </table>
  24. <p>
  25. <input type="submit" value="Zapisz zmiany" />
  26. </p>
  27. </form>
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: 11.10.2025 - 09:35