Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Lekkie przerobienie instrukcji warunkowej, Z góry dziękuję
CryWolf
post 15.07.2007, 14:37:43
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 9.06.2007

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


Witam!
Mam kod:

  1. <?php
  2.  
  3. //wczytanie pliku z funkcjami
  4. require_once ("funkcje.php");
  5. //rozpoczęcie sesji
  6.  
  7. include "tabelaleft.php";
  8. pol_mysql();
  9.  
  10. include_once "blokada.php";
  11.  
  12. ?>
  13.  
  14. <td width="500" height="200">
  15.  
  16. <?php
  17.  
  18. echo "Obecnie Twoje GG to: ";
  19.  
  20. $pokazgg = "SELECT gg FROM users WHERE login = '". $_SESSION['user'] ."'";
  21. $wykonaj = mysql_query($pokazgg);
  22. while($wiersz = mysql_fetch_array($wykonaj))
  23. {
  24. print " ".$wiersz['gg']."<br>";
  25.  
  26. }
  27.  
  28. ?>
  29.  
  30.  
  31. <form action="changegg.php" method="POST">
  32. Wpisz nowe GG i potwierdź! <input type="text" name="gg">
  33. <input type="submit" value="Zmień">
  34. </form>
  35.  
  36. <?php
  37. $gg = $_POST['gg']; // zmienna gg z formularza
  38.  
  39.  
  40. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'");
  41.  
  42.  
  43.  
  44.  
  45. ?> 
  46.  
  47. </td>
  48.  
  49. <?php
  50. include "tabelaright.php";
  51. ?>


Chodzi o to, że wyświetli mi, że aktualne gg to 2871296, lecz po odświeżeniu strony już nic się nie pokazuje bo chwile dalej część kodu:

  1. <?php
  2. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'");
  3. ?>

dodaje mi pusty rekord. Najpierw wyświetla się formularz do wypełnienia i potem skrypt nie czeka i dodaje pusty rekord do bazy danych. Wiem, że trzeba to zrobić instrukcją warunkową ale nie wiem jak. Gdy ktos wejdzie w edycję GG ale jednak nie bedzie chcial ostatecznie zmienic gg to po wyjsciu ze strony zostanie pusta niewypełniona kolumna gg. Lecz gdy wejdzie na stronę, wyświetli mu się jego GG i wpisze do formularza nowe GG i potwierdzi to wtedy gg się zachowa. Pewnie wiecie już o co chodzi ale wolę wytłumaczyć, a i czy metoda GET jest tu dobrym pomysłem czy lepiej użyć POST?
Pozdrawiam i z góry dziękuję smile.gif

Ten post edytował CryWolf 15.07.2007, 14:39:53
Go to the top of the page
+Quote Post
-=Peter=-
post 15.07.2007, 14:44:02
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


  1. <?php
  2. if(is_numeric($_POST['gg'])){
  3. $gg = $_POST['gg']; // zmienna gg z formularza
  4. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'");
  5. }
  6. ?>


--------------------
Go to the top of the page
+Quote Post
JaRoPHP
post 15.07.2007, 14:46:12
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


  1. <?php
  2. if(!empty($_POST['gg'])) {
  3. $gg = $_POST['gg']; // zmienna gg z formularza
  4. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'");
  5. }
  6. ?>

--
małe spóźnienie


Ten post edytował JaRoPHP 15.07.2007, 14:49:19


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
CryWolf
post 15.07.2007, 15:52:41
Post #4





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 9.06.2007

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


Jeszcze ostatnia sprawa. jestem w tym nowy i nie wiem.
Co tu jest źle? Coś chyba z else ale nie jestem pewien.

  1. <?php
  2. if(isset($_POST['gg']))
  3. {
  4. $gg = floor($_POST['gg']); // zmienna gg z formularza
  5. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'"); }
  6.  
  7. else { echo "
  8.  
  9. <form action="changegg.php" method="POST">
  10. Wpisz nowe GG i potwierdź! <input type="text" name="gg">
  11. <input type="submit" value="Zmie&#324;">
  12. </form>";
  13. }
  14. ?>


Ten post edytował CryWolf 15.07.2007, 15:53:00
Go to the top of the page
+Quote Post
JaRoPHP
post 15.07.2007, 15:58:41
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Dlaczego sprawdzasz, czy pole zostało wypełnione funkcją isset" title="Zobacz w manualu PHP" target="_manual. Nawet jeśli pole to będzie puste, a zostanie przesłane (będzie w formularzu), funkcja zwróci wartość true.

  1. <?php
  2. if(!empty($_POST['gg'])) {
  3. $gg = $_POST['gg']; // zmienna gg z formularza
  4. mysql_query("UPDATE users SET gg = $gg WHERE login = '". $_SESSION['user'] ."'");
  5. } else {
  6. // po echo powinien być apostrof
  7. echo 
  8. <form action="changegg.php" method="POST">
  9. Wpisz nowe GG i potwierdź! <input type="text" name="gg">
  10. <input type="submit" value="Zmień">
  11. </form>'; // i znowu apostrof
  12. }
  13. ?>


Ten post edytował JaRoPHP 15.07.2007, 15:59:19


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 16:20