Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd w instrukcji warunkowej
Forum PHP.pl > Forum > Przedszkole
szokmen
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. }

marcio
Zamien:
  1. if($wyk2)

Na:
  1.  
  2. if(mysql_num_rows($wyk2) > 0)
Pawcio91
  1. if (isset($_GET["wybor"])== 'szukaj')

bez sensu, bo isset() zwraca true albo false
szokmen
Bardzo dziękuje za rade już działa 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. {
mortus
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.
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.