Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Błąd w instrukcji warunkowej
szokmen
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2010

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


Mam taki kawałek kodu jak poniżej. Chciałbym aby instrukcja warunkowa zwracała napis "znaleziono" gdy znajdzie w bazie ludzi o podanym imieniu. Niestety ona zawsze zwraca ten napis czy podam imię znajdujące się w bazie czy nie. Proszę o zerknięcie na ten kod i napisanie co robię nie tak.
  1. else if (isset($_GET["napis"]))
  2. {
  3.  
  4. $zapytanie2="SELECT *from klienci where imie='$_GET[napis]'";
  5. $wyk2=mysql_query($zapytanie2);
  6.  
  7. if (isset($_GET["wybor"])== 'szukaj')
  8. {
  9. if($wyk2)
  10.  
  11. {echo ("Znaleziono");}
  12. else echo ("<b>Nie ma</b>");
  13.  
  14. echo '<br/>';
  15. while($rek=mysql_fetch_array($wyk2))
  16. {
  17. $id2 =$rek[0];
  18. $imie2=$rek[1];
  19. $nazwisko2=$rek[2];
  20. $nazwa_firmy2=$rek[3];
  21. $telefon2=$rek[4];
  22. echo "<tr>";
  23. echo "<td><b>$id2</td></b>";
  24. echo "<td><b>$imie2</td></b>";
  25. echo "<td><b>$nazwisko2</td></b>";
  26. echo "<td><b>$nazwa_firmy2</td></b>";
  27. echo "<td><b>$telefon2</td></b>";
  28. echo "</tr>\n";
  29.  
  30. }
  31. echo "</table>";
  32. echo '<a href ="formularz.php"> Powrot do formularza</a>';
  33.  
  34. }
  35. }

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Zamien:
  1. if($wyk2)

Na:
  1.  
  2. if(mysql_num_rows($wyk2) > 0)
Go to the top of the page
+Quote Post
Pawcio91
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 18.05.2010

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


  1. if (isset($_GET["wybor"])== 'szukaj')

bez sensu, bo isset() zwraca true albo false
Go to the top of the page
+Quote Post
szokmen
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.05.2010

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


Bardzo dziękuje za rade już działa (IMG:style_emoticons/default/biggrin.gif) a co do tego isset to już o tym czytałem, że on zwraca bool. Mam w takim razie pytanko:
Dlaczego kiedy usunąłem isset przed:
  1. if (isset($_GET["wybor"])== 'szukaj')
to wszystko jest ok
ale kiedy usunąłem isset przed
  1. if(isset($_POST["wybor"])== 'dodaj')
to zaczęła mi się wyświetlać notka
Notice: Undefined index: wybor in G:\wamp\www\formularz.php on line 39


  1. if(isset($_POST["wybor"])== 'dodaj')
  2. {
  3. $imie1=$_POST['imie'];
  4. $nazwisko1=$_POST['nazwisko'];
  5. $nazwa1=$_POST['nazwa_firmy'];
  6. $telefon1=$_POST['telefon'];
  7.  
  8.  
  9. if($imie1 and $nazwisko1 and $nazwa1 and $telefon1)
  10. {
  11.  
  12. $ins =mysql_query("insert into Klienci set imie='$imie1', nazwisko='$nazwisko1', nazwa_firmy='$nazwa1',telefon='$telefon1'");
  13. if($ins) echo "Rekord został dodany poprawnie";
  14. else echo "Błąd nie udało się dodać nowego rekordu";
  15. }
  16. }
  17.  
  18.  
  19.  
  20. else if (isset($_GET["napis"]))
  21. {
  22.  
  23. $zapytanie2="SELECT *from klienci where imie='$_GET[napis]'";
  24. $wyk2=mysql_query($zapytanie2);
  25.  
  26. if ($_GET["wybor"]== 'szukaj')
  27. {
  28. if(mysql_num_rows($wyk2) > 0)
  29. {
Go to the top of the page
+Quote Post
mortus
post
Post #5





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

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


isset służy do sprawdzania, czy zmienna została zadeklarowana i zainicjowana (choćby pustą wartością). Czyli isset($_POST['wybor']) interpretujemy jako zapytanie - czy istnieje zmienna $_POST['wybor']. W Twoim przypadku należałoby użyć konstrukcji
  1. if(isset($_POST['wybor']) && $_POST['wybor'] == 'szukaj')) {
Pokrótce możemy to zinterpretować jako zapytanie - czy istnieje zmienna $_POST['wybor'] i czy wartość tej zmiennej to 'szukaj'. Warunki są sprawdzane w takiej właśnie kolejności.
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: 22.08.2025 - 13:59