Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] Update formularzu (kilka buttonów)
Forum PHP.pl > Forum > Przedszkole
PimP517
Witam.

Mam problem z aktualizacją rekordów, problem twki w tym że niekiedy się nie aktualizują, niekiedy się aktualizuje nie ten, niekiedy hasło aktualizuje się jedno do wszystkich rekordów.

  1. $query = safe_query("SELECT * FROM `kupione_nicki` WHERE id_uzytkownika = '$userID'");
  2. while($nicki = mysql_fetch_array($query))
  3. {
  4. $nid = $nicki['id'];
  5. $nickg = $nicki['name'];
  6. $haslog = $nicki['pass'];
  7.  
  8. eval ("\$uslugi_nick = \"".gettemplate("uslugi_nick")."\";");
  9. echo $uslugi_nick;
  10.  
  11.  
  12. if(isset($_POST["save"]))
  13. {
  14. $newpass = $_POST["haslonowe"];
  15. $ktoreid = $_POST["nid"];
  16. safe_query("UPDATE kupione_nicki SET pass='".$newpass."' WHERE id='".$ktoreid."' LIMIT 1");
  17. }


  1. <tr>
  2. <input type="hidden" value="$nid" name="nid" />
  3. <td align="center"><b>$nickg</b></td>
  4. <td align="center"><b><input name="haslonowe" type="text" value="$haslog" /></b></td>
  5. <td align="center"><input type="submit" class="button" name="save" value="Zapisz" /> </td>
  6. </tr>


Przykładowy formularz wygląda tak:
mortus
Przede wszystkim trzeba ten UPDATE haseł wyrzucić z pętli while, bo to jest w ogóle bez sensu. Poza tym za pomocą przycisku typu submit nie rozwiążesz problemu, chyba że dla każdego użytkownika będziesz tworzył formularz. Jednak lepszym rozwiązaniem jest użycie przycisku button:
  1. <tr>
  2. <td align="center"><b>$nickg</b></td>
  3. <td align="center"><b><input name="haslonowe[$nid]" type="text" value="$haslog" /></b></td>
  4. <td align="center"><button type="submit" class="button" name="save" value="$nid;">Zapisz</button></td>
  5. </tr>

Wtedy powyższy fragment formularza możemy obsłużyć tak:
  1. // najpierw sprawdzamy, czy został naciśnięty przycisk zapisz, a jeśli tak, to aktualizujemy hasło
  2. if(isset($_POST['save']) && $_POST['save'] != '' && is_number($_POST['save'])) {
  3. $user_id = $_POST['save'];
  4. $new_password = $_POST['haslonowe'][$user_id];
  5. safe_query("UPDATE kupione_nicki SET pass='".$new_password."' WHERE id='".$user_id."' LIMIT 1");
  6. }
  7. // teraz możemy ponownie wyświetlić listę użytkowników
PimP517
Kurcze nie działa mi to. Przy naciśnięciu Zapisz hasło się nie aktualizuje.
nospor
Temat: Jak poprawnie zada pytanie
PimP517
  1. Fatal error: Call to undefined function is_number() in /home/pimp5173/domains/sklep.cs-city.eu/public_html/uslugi.php on line 32


Dzięki był problem z is_number()

Małe pytanko jeszcze bo po aktualizaci rekordu w bazie hasło w polu input zostaje to stare do odświeżenia strony. Jak zrobić żeby po wciśnięciu zapisz załadowało nowe hasło bądź przekierowało na strone z napisem "Hasło zostało zmienione < Powrót"

header("Location:"); nie działa
nospor
Cytat
Małe pytanko jeszcze bo po aktualizaci rekordu w bazie hasło w polu input zostaje to stare do odświeżenia strony.
Bo najpierw się zmienia a dopiero potem wyświetla - to chyba logiczne.

Cytat
header("Location:"); nie działa

Bo location wymaga podania adresu.
PimP517
  1. if(isset($_POST['save']) && $_POST['save'] != '')
  2. {
  3. $user_id = $_POST['save'];
  4. $new_password = $_POST['haslonowe'][$user_id];
  5. mysql_query("UPDATE kupione_nicki SET pass='".$new_password."' WHERE id='".$user_id."' LIMIT 1")or die('BŁĄD:'.mysql_error());
  6. header("Location: <a href="http://strona.pl&quot%3b%29;" target="_blank">http://strona.pl");</a>
  7. }

Nie przekierowuje na strona.pl
nospor
Ponowię linka:
Temat: Jak poprawnie zada pytanie
Rid
Cytat
Ponowię linka:
Temat: Jak poprawnie zada pytanie

A ja podam linka:
http://php.net/manual/en/function.header.php
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.