Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sprawdzenie czy zmienna zmienna jest pusta
Forum PHP.pl > Forum > Przedszkole
danek121
Witam,
Jak w temacie próbowałem już kilka razy samemu i szukałem rozwiązania, ale nic nie znalazłem, a mianowicie gdzie w tym skrypcie rzucić ifa który będzie sprawdzał czy zmienna $poziom jest pusta i czy istnieje w bazie? Jeśli nie jest pusta i istnieje to wypiszę tabele z rekordami, a jeśli nie to wypiszę ze nie ma takiego rekordu. Z góry dzięki za pomoc.

  1. $polaczenie = mysqli_connect($host, $db_user, $db_password, $db_name);
  2.  
  3. $poziom = $_POST['poziom'];
  4. $pokemons = "SELECT * FROM pokemons WHERE lvl=".$poziom;
  5.  
  6. $wynik = mysqli_query($polaczenie, $pokemons) or die("Error: ".mysqli_error($polaczenie));


A tutaj wypisywanie tabeli i formularza:

  1. <center>
  2. <form action="poziompokemon2.php" method="post">
  3. <font size="10px">Wpisz poziom pokemona</font></br></br>
  4. <input type="text" name="poziom"/></br></br>
  5. <input type="submit" value="Pokaż"></br></br>
  6. </form>
  7.  
  8. <table class="tabelka" border="1" cellpadding="5" cellspacing="0">
  9. <tr>
  10. <th><span class="wiersz">Podgląd</span></th><th><span class="wiersz">Nazwa</span></th><th><span class="wiersz"> Poziom </span></th><th><span class="wiersz"> Region </span> </th><th><span class="wiersz"> Rodzaj </span></th><th><span class="wiersz"> Umiejętności </span> </th><th><span class="wiersz"> Słaby vs </span></th><th><span class="wiersz"> Mocny vs </span></th><th><span class="wiersz"> Cena </span>
  11. </tr>
  12. </center>';
  13.  
  14. // Wypisywanie rekordów od pierwszego do końca
  15.  
  16. while ($row = mysqli_fetch_array($wynik)) {
  17. <tr><td><img src="'.$row['img'].'"/></td><td id="nameofpokemon">'.$row['name'].'</td><td>'.$row['lvl'].'</td><td>'.$row['typ'].'</td><td>'.$row['kind'].'</td><td>'.$row['more'].'</td><td>'.$row['weak'].'</td><td>'.$row['strong'].'</td><td><font color="green">'.$row['price'].'</font></td>
  18. </tr>';
  19.  
  20. };
  21. mysqli_free_result($wynik);
  22.  
Tomplus
  1. if(empty($poziom)) echo "Ta zmienna jest pusta, wpisz coś chopie!";
danek121
No dobra niby działa, ale co z resztą np gdy ktoś wpisze inną wartość niż jest w bazie to co po prostu dodać && $poziom != $row['lvl']?, jeśli tak to w którym miejscu i co z błędem który wyskakuje jak kliknę pokaż gdy pole jest puste:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
Tomplus
Jeżeli wysyłasz jakąś wartość to należy sprawdzić czy użytkownik wrzuca poprawną wartość w twojej zmiennej.

Jeżeli ma to być liczba to sprawdź:

  1. if(is_numeric($poziom)) {
  2. echo "zmienna \$poziom zawiera wartość liczbową: $poziom";
  3. }


Spójrz jak działają podstawowe funkcje kontrolne zmiennych, zobaczysz przy jakich wartościach warunek zostaje spełniony, a przy jakich nie jest.

  1. $a = 0;
  2. if(isset($a)) echo "i";
  3. if(empty($a)) echo "e";
  4. if(is_numeric($a)) echo "n";
  5. if(is_string($a)) echo "s";
  6. if(is_bool($a)) echo "b";
danek121
Dzięki za ściągawkę, ale to w miarę ogarniam. Aktualnie nie jestem w stanie się połapać gdzie wklepać tego ifa, który jeżeli ktoś wpisze złą liczbę lub zostawi puste to wyskoczy sam formularz, a jeśli wpiszę poprawnie to wypiszą się tabele z danymi rekordami.
Tomplus

  1. if(warunek) {
  2.  
  3. // wyswietl właściwą treść
  4.  
  5. } else {
  6.  
  7. // wyświetl komunikat z błędem
  8.  
  9. }
danek121
Nie pytałem jak wygląda konstrukcja ifa tylko gdzie w tym kodzie co podałem go wrzucić, pomiędzy czym, w którym miejscu.
markonix
http://php.net/manual/en/mysqli-result.num-rows.php interesuje Cię rezultat większy niż 0.
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.