Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zmiana danych w bazie
Aga_
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.04.2006

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


Witam, mam problem ze zmianą pól w bazie, dla wielu rekordów. Wyświetlam w formularzu rekordy z bazy i dla każdego z nich chce zmieniać jedno pole. Nie wiem jak powiązać to pole z rekordem, skoro w formularzu nie wpisuje danych i do zmiennej wrzucam pustą wartość.
Wyświetlam imie i nazwisko i chce zmienic nieobecnosci. Proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Niżej zamieszczam fragment kodu:
  1. <form method=post action=pierwsza.php?action=zmien > 
  2. <table width="80%" border="0" align="center" bgcolor="#FAEBD7" >
  3. <tr>
  4. <td height=30 align=center> <font color="#FFA500"><b> Imie: </b></td>
  5. <td height=30 align=center> <font color="#FFA500"><b> Nazwisko: </b></td>
  6. <td height=30 align=center> <font color="#FFA500"><b> Grupa: </b></td>
  7. <td height=30 align=center> <font color="#FFA500"><b> Ilość nieobecnosci w ubiegłym miesiącu: </b></td>
  8. </tr>
  9.  
  10. <?php
  11.  $connect=mysql_connect('localhost','root','root') or die ('Przykro nam ale nie mogę połączyć się z bazą!');
  12. mysql_select_db("rejestracja");
  13.  
  14.  
  15. $query="SELECT * FROM dzieci where grupa=1 ORDER BY 'nazwisko'";
  16. $result=mysql_query($query)or die (mysql_error());
  17.  
  18. while ($row=mysql_fetch_array($result))
  19. {
  20. echo "<tr>";
  21. echo "<td height=30> ".$row["imie"]."</td>n";
  22. echo "<td height=30> ".$row["nazwisko"]."</td>n";
  23. echo "<td height=30 align=center> ".$row["grupa"]."</td>n";
  24. echo "<td height=30 align=center> <input type=tekst name=nieobecnosci> poprzednio: ".$row["nieobecnosci"]."<br>n";
  25. echo "<div align='center'><input type=submit value='zmien'></div>";
  26. echo "</tr>";
  27. }
  28. mysql_free_result ($result);
  29. ?>
  30. </table>
  31. </form>
  32.  
  33. <?php
  34.  
  35. if ($_REQUEST['action'] == zmien) zmien();
  36.  
  37. function zmien()
  38. {
  39. $imie = $_POST['imie'];
  40. $nazwisko = $_POST['nazwisko'];
  41. $nieobecnosci = $_POST['nieobecnosci'];
  42.  
  43. //sprawdzenie czy pole nieobecnosci są wypełnione
  44. //if 
  45. //($nieobecnosci == '')
  46. //echo "pola nieobecnosci musza byc wypelnione";
  47. //else
  48.  
  49. //zapisanie do bazy
  50. $query = "UPDATE dzieci SET nieobecnosci = '$nieobecnosci'
  51. WHERE nazwisko = '$nazwisko' ";
  52. $result = mysql_query($query) or die (mysql_error());
  53.  
  54. echo "<table><tr><td align=center>",$nieobecnosci,"Lista została zmienona :)<br></a></td></tr></table>";
  55. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-Gość-
post
Post #2





Goście







Mozna jeszcze zrobic za pomoca przekazywania tablicy wszystkich nieobecnosci przez POST i potem przy uzyciu foreach iterowac po tej tablicy. Tylko do tego trzeba jeszcze dodac jakis atrybut hidden okreslajacy danego ucznia (np. id), zeby podczas update wiedziec do jakiego ucznia dana nieobecnosc sie odnosi (bo u ciebie nie przekazujesz POSTem nazwiska ani imienia, a w UPDATE masz WHERE nazwisko='$nazwisko').
Jak ci sie uda to napisac to zapostuj tutaj, bo z checia zobacze jak to rozwiazalas.
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: 7.10.2025 - 07:08