Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Lekkie przerobienie instrukcji warunkowej
Forum PHP.pl > Forum > Przedszkole
CryWolf
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
-=Peter=-
  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. ?>
JaRoPHP
  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
CryWolf
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. ?>
JaRoPHP
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. ?>
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.