Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]wyciąganie danych z bazy
Forum PHP.pl > Forum > Przedszkole
marcinkooter
Mam bazę danych o nazwie 2 z tabelą"dane_ z_ tabeli". W tabeli mam 4 rekordy.
chcę aby wyświetlało mi je na stronie tylko wtedy, kiedy pole WYNAGRODZENIE1 nie jest puste
po zastosowaniu poniższego kodu, wyświetla mi wszystkie rekordy niezależnie od pola wynagrodzenie1. Gdzie mogłem zrobić błąd?

  1. <?php
  2. function lacz_bd()
  3. {
  4. $db = new mysqli('localhost', 'login', 'haslo', '2');
  5. if (! $db)
  6. return false;
  7. $db->autocommit(TRUE);
  8. return $db;
  9. }
  10.  
  11.  
  12.  
  13. $db = lacz_bd();
  14.  
  15.  
  16. $zapytanie = "select nazwa, wiek, miasto, dzielnica, wynagrodzenie1 from dane_z_tabeli where wynagrodzenie1 IS NOT NULL";
  17.  
  18.  
  19. $wynik = $db->query($zapytanie);
  20.  
  21.  
  22. $ile_znalezionych = $wynik->num_rows;
  23.  
  24.  
  25.  
  26.  
  27. echo '<table>';
  28. echo '<tr><td>NAZWA</td><td>WIEK</td><td>MIASTO</td><td>DZIELNICA</td><td>WYNAGRODZENIE</td></tr>','<BR>';
  29.  
  30.  
  31. for ($i=0; $i <$ile_znalezionych; $i++)
  32. {
  33. $wiersz = $wynik->fetch_assoc();
  34. echo '<tr>';
  35. echo '<td>'.$wiersz['nazwa'].'</td>';
  36. echo '<td>'.$wiersz['wiek'].'</td>';
  37. echo '<td>'.$wiersz['miasto'].'</td>';
  38. echo '<td>'.$wiersz['dzielnica'].'</td>';
  39. echo '<td>'.$wiersz['wynagrodzenie1'].'</td>';
  40. echo '</tr>';
  41. }
  42. echo '</table>';
  43. ?>
  44.  
  45.  




Taki mam wynik

NAZWA WIEK MIASTO DZIELNICA WYNAGRODZENIE

Joanna 19 Kraków krowodzrza 10

Katarzyna 10 Szczecin kaszuby 15

Maciej 19 Warszawa krowodzrza

Anna 24 Wrocław grzegórzki


Z kolei gdy zmienię selecta na:
$zapytanie = 'select nazwa, wiek, miasto, dzielnica, wynagrodzenie1 from dane_z_tabeli where wiek=19';

wynik zwracany jest poprawny

zordon
Prawdopodobnie w polu wynagrodzenie1 nie masz nulla, tylko pusty ciąg znaków, a to nie to samo.
Sprawdź, czy kolumna wynagrodzenie1 nie ma przypadkiem ustawionego NOT NULL i podaj jakiego jest typu.

Spróbuj, nawet ręcznie w bazie dać UPDATE ... SET NULL WHERE..., a później sprawdź sobie ponownie wyniki
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.