Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML][MYSQL]Aktualizcja wszystkich rekordów, Proszę o pomoc :)
beznazwy
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.11.2008

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


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
KCG
post
Post #2





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


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?
Go to the top of the page
+Quote Post
beznazwy
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.11.2008

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


Tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
BaN
post
Post #4





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

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


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. ?>
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


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ę (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post
decha-design
post
Post #6





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Mam takie pytanie ... znasz w ogóle przeznaczenie funkcji eval" title="Zobacz w manualu PHP" target="_manual? Bo mi się wydaje, że nie (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 04:33