Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP] Update formularzu (kilka buttonów), php, mysql, update, formularz, buttony, kilka
PimP517
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.07.2010

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


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:
(IMG:http://cs-city.eu/uploads/imgs/cscityeu_1315783379__untitled.png)

Ten post edytował PimP517 12.09.2011, 00:25:58
Go to the top of the page
+Quote Post
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.07.2010

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


Kurcze nie działa mi to. Przy naciśnięciu Zapisz hasło się nie aktualizuje.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Temat: Jak poprawnie zada pytanie
Go to the top of the page
+Quote Post
PimP517
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.07.2010

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


  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

Ten post edytował PimP517 12.09.2011, 14:06:54
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.07.2010

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


  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
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ponowię linka:
Temat: Jak poprawnie zada pytanie
Go to the top of the page
+Quote Post
Rid
post
Post #9





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Cytat
Ponowię linka:
Temat: Jak poprawnie zada pytanie

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