Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]Aktualizcja wszystkich rekordów
Forum PHP.pl > Forum > Przedszkole
beznazwy
Mam problem jak to zrobić:
Chcę, aby pola po zmianie aktualizowały tabelę w bazie danych:

Kolumny w tabeli uzytkownicy:
> id
> nazwisko
> login
> haslo
> md5
> punkty
> typ

Opis problemu:
Chciałbym, aby najpierw skrypt pobierał wszystkie rekordy z tabeli. Później wyświetlał tabelę:
> nazwisko
> punkty (ale żeby byo to pole o atrybucie value="$row['punkty']"

Kod PHP:
  1. <?php
  2. echo ('<h2>Punkty</h2>');
  3. if (isset ($_POST['submitted'])) {
  4.  echo ('<big><strong>Zmieniono!</strong></big><br><br>');
  5.  $query = "SELECT * FROM `uzytkownicy`";
  6.  $result = mysql_query ($query);
  7.  $querys = array ();
  8.  while ($row = mysql_fetch_array ($result)) {
  9.    eval ('$p' . $row['id'] . ' = $_POST['punkty' . $row['id'] . ''];');
  10.    $id = $row['id'];
  11.    $query = "UPDATE `uzytkownicy` SET `punkty` = '$p" . $id . "' WHERE `id` = '$id'";
  12.    eval ('mysql_query ($query);');
  13.  }
  14. }    
  15. $query = "SELECT * FROM `uzytkownicy` ORDER BY `id` ASC";
  16. $result = mysql_query ($query);
  17. echo ('<form action="?page=punkty" method="post">
  18. <table>
  19. <thead>
  20. <tr>
  21. <td width="200">Imię i nazwisko</td>
  22. <td width="65" align="center">Punkty</td>
  23. </tr>
  24. </thead>
  25. <tbody>');
  26. while ($row = mysql_fetch_array ($result)) {
  27.  echo ('<tr>
  28.  <td>' . $row['nazwisko'] . '</td>
  29.  <td align="center"><input type="text" style="text-align: center; width: 55px;" name="' . $row['id'] . '" value="' . $row['punkty'] .'"></td>
  30.   </tr>');        
  31. }
  32. echo ('</tbody></table><br>
  33. <strong>Zapisz zmiany:</strong>&nbsp;<button type="submit">Zapisz!</button>
  34. <input type="hidden" name="submitted" value="TRUE">
  35. </form>');
  36. ?>
KCG
Tzn. co chcesz aktualizować? Nie masz żadnego zapytania UPDATE do bazy. Chodzi o to, że wyświetla wszystkie rekordy, edytujesz sobie i jednym przyciskiem Edytuj zatwierdzasz?
beznazwy
Tak smile.gif
BaN
Stosujesz eval() tam, gdzie to jest zupełnie niepotrzebne, druga sprawa, to nazwy pól, masz tam sam identyfikator, musisz dodać napis 'punkty', czyli
  1. <?php
  2. ... name="punkty' . $row['id'] ...
  3. ?>


W pętli while zamiast tych 4 wierszy wstaw:
  1. <?php
  2. mysql_query("UPDATE `uzytkownicy` SET `punkty` = {$_POST['punkty' . $row['id']]} WHERE `id` = {$row['id']}");
  3. ?>
sowiq
Cytat(beznazwy @ 10.01.2009, 11:27:02 ) *
  1. <?php
  2. eval ('$p' . $row['id'] . ' = $_POST['punkty' . $row['id'] . ''];');
  3.   $id = $row['id'];
  4.   $query = "UPDATE `uzytkownicy` SET `punkty` = '$p" . $id . "' WHERE `id` = '$id'";
  5.   eval ('mysql_query ($query);');
  6. ?>
O w mordę laugh.gif
decha-design
Mam takie pytanie ... znasz w ogóle przeznaczenie funkcji eval" title="Zobacz w manualu PHP" target="_manual? Bo mi się wydaje, że nie haha.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.