Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Checkbox + update = problem
macromatic
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 20.02.2007

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


Witam,

ślęczę już od paru dobrych godzin i nie mam pomysłu jak wykonac następującą rzecz:

1. Mam formularz w którym użytkownik edytuje wcześniej wczytane z bazy danych informacje.
Kod wygląda następująco:

  1. <?php
  2. echo' <form method="post" action="'.$_PHPSELF.'">
  3. <table width="100%" border="0">
  4. <tr>
  5. <td width="10%"><div align="center"><b><input type="text" size="2%" name="pozycja[]" value="'.$pozycja.'"></b></div></td>
  6. <td width="30%"><div align="center"><b><input type="text" size="20%" name="nazwa[]" value="'.$nazwa.'"></b></div></td>
  7. <td width="10%"><div align="center"><b><input type="text" size="2%" name="mecze[]" value="'.$mecze.'"></b></div></td>
  8. <td width="10%"><div align="center"><b><input type="text" size="2%" name="z[]" value="'.$z.'"></b></div></td>
  9. <td width="10%"><div align="center"><b><input type="text" size="2%" name="r[]" value="'.$r.'"></b></div></td>
  10. <td width="10%"><div align="center"><b><input type="text" size="2%" name="p[]" value="'.$p.'"></b></div></td>
  11. <td width="10%"><div align="center"><b><input type="text" size="4%" name="bramki[]" value="'.$bramki.'"></b></div></td>
  12. <td width="10%"><div align="center"><b><input type="text" size="4%" name="punkty[]" value="'.$punkty.'"></b></div></td>
  13. </tr>
  14. </table>
  15. <input type="hidden" name="zespolid[]" value="'.$zespolid.'">';
  16. }
  17. }
  18. echo'<div align="center"><p><input type="submit" name="edytuj" value="Zapisz"></p></div>';
  19. }
  20. echo'</form>';
  21. ?>


2. Po kliknięciu zapisz formularz powinien wykonac pare instrukcji foreach i zapisac aktualne dane do bazy danych.
Kod wyglada tak:

  1. <?php
  2. if (!empty($_POST['edytuj']) && !empty($_POST['zespolid'])) {
  3.  
  4. require_once ("../baza_dane.php");
  5.  
  6. $zespolid = $_POST['zespolid'];
  7. $pozycja = $_POST['pozycja'];
  8. $nazwa = $_POST['nazwa'];
  9. $mecze = $_POST['mecze'];
  10. $z = $_POST['z'];
  11. $r = $_POST['r'];
  12. $p = $_POST['p'];
  13. $bramki = $_POST['bramki'];
  14. $punkty = $_POST['punkty'];
  15.  
  16. foreach ($zespolid as $zes)
  17. foreach ($pozycja as $poz)
  18. foreach ($nazwa as $naz)
  19. foreach ($mecze as $mec)
  20. foreach ($z as $zwy)
  21. foreach ($r as $rem)
  22. foreach ($p as $por)
  23. foreach ($bramki as $bra)
  24. foreach ($punkty as $pun) {
  25. if (!empty($zes)) {
  26. $zapytanie = "UPDATE zespoly SET 
  27. pozycja = '$poz',
  28. nazwa = '$naz',
  29. mecze = '$mec',
  30. z = '$zwy',
  31. r = '$rem',
  32. p = '$por',
  33. bramki = '$bra',
  34. punkty = '$pun'
  35. WHERE zespolid = '$zes'";
  36. $wynik = mysql_query($zapytanie)
  37. or die(mysql_error());
  38. }
  39. }
  40. ?>


Jednak jak z góry wiadomo informacje się nie zapisują. Czy wie ktoś dlaczego? Funkcja mysql_error() nie zwraca żadnych błędów a np. jeżeli edytuję 3 rzeczy to powyższy kod zapisuje pierwszą poprawnie a pozostałe nadpisuje.

Wygląda to mniej więcej tak:

EDYTUJĘ:
- dana 1
- dana 2
- dana 3

PO ZAPISIE WYGLĄDA TAK
- dana 1
- dana 1
- dana 1

Czy ktoś ma pomysł jak rozwiązac problem? Mam nadzieje ze opisalem wszystko jasno i wyraznie. Jezeli sa watpliwosci moge to jescze jasniej napisac smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 07:53