Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] mysql_fetch_row zwraca złą wartość
Forum PHP.pl > Forum > Przedszkole
piotrekkr
witam! mam taka baze a w niej tabele `Banned` w ktorej mam identyfiktory zabanowanych uzytkownikow formu. Kolumna nazywa sie `UserId`. Jest w niej jedno UserId=23. config.php zawiera dane bazy adres nazwe bazy itd.

mam teraz taki skrypt ktory sprawdza czy uzytkownik o podanym UserId jest w bazie jak tak to wypisuje 'TAK' a jak nie to wypisuje 'NIE'.
  1. <?php
  2. function czy_ban($UserId){
  3. include('config.php');
  4. $query="SELECT COUNT(*) FROM `Banned` WHERE `UserId`=$UserId";
  5. if(!$polaczenie=mysql_connect($baza['serwer'],$baza['login'],$baza['haslo'])){
  6.   return '<div class="blad">USER_BAN_BLAD_POLACZENIA</div>';
  7. }else if(!mysql_select_db($baza['nazwa_bazy'])){
  8.   return '<div class="blad">USER_BAN_BLAD_WYBORU_BAZY</div>';
  9. }else if(!$wynik_zapytania=mysql_query($query)){
  10.   return '<div class="blad">USER_BAN_BLAD_ZAPYTANIA</div>';
  11. }else if($tab_wynikowa=mysql_fetch_row($wynik_zapytania)===FALSE){
  12.   return '<div class="blad">USER_BAN_BLAD_WYNIKU_ZAPYTANIA</div>';
  13. }else if($tab_wynikowa[0]==1){
  14.   return 'TAK';
  15. }else if($tab_wynikowa[0]==0){
  16.   return 'NIE';
  17. }else{
  18. return 'BLAD';
  19. };
  20. };
  21. ?>


teraz jest jeden problem zawsze wypisuje ze NIE. Dziwne to troche bo przeciez COUNT(*) powinno zwrocic 1 w wyniku? Jak proboje wyswietlic wartosc $tab_wynikowa[0] to mi nic nie wyswietla. Wie ktos czemu tak jest bo jest dobrze jak wpisze to zapytanie w konsoli to mu wyswietla tabelke a w niej wartosc 1? Pomozcie bo trace juz do tego sily angrysmiley.gif . dzieki i pozdrawiam
nospor
problem co tu przedstawiasz ma maly problem z php5 (prócz moze tego, ze ty go na pp5 uruchamiasz).
Problem lezy w twojej dziwnej strukturze opartej na jeden wielki if winksmiley.jpg
konkretnie o tę linijkę chyba chodzi
  1. <?php
  2. else if($tab_wynikowa=mysql_fetch_row($wynik_zapytania)===FALSE)
  3. ?>

najpierw jest chyba robione porowanie: mysql_fetch_row($wynik_zapytania)===FALSE a dopiero potem przypisanie wyniku tego porownania czyli false. stad ten blad. powinno byc:
  1. <?php
  2. else if(($tab_wynikowa=mysql_fetch_row($wynik_zapytania))===FALSE)
  3. ?>
wogole to powinno byc po ludzku a nie na jednym ifie wszystko smile.gif

ps: przenoszę na przedszkole
piotrekkr
ok sprobowalem i dalej to samo :/ troszke mnie to irytuje. sproboje jeszcze inaczej teraz zrobilem tak:
  1. <?php
  2. function czy_ban($UserId){
  3. include('config.php');
  4. $query="SELECT COUNT(*) FROM `Banned` WHERE `UserId`=$UserId";
  5. if(!$polaczenie=mysql_connect($baza['serwer'],$baza['login'],$baza['haslo'])){
  6.   return '<div class="blad">USER_BAN_BLAD_POLACZENIA</div>';
  7. }else if(!mysql_select_db($baza['nazwa_bazy'])){
  8.   return '<div class="blad">USER_BAN_BLAD_WYBORU_BAZY</div>';
  9. }else if(!$wynik_zapytania=mysql_query($query)){
  10.   return '<div class="blad">USER_BAN_BLAD_ZAPYTANIA</div>';
  11. }else{
  12.   $tab_wynikowa=mysql_fetch_row($wynik_zapytania);
  13.   if($tab_wynikowa==FALSE){
  14.   return '<div class="blad">USER_BAN_BLAD_WYNIKU_ZAPYTANIA</div>';
  15.   }else if($tab_wynikowa[0]==1){
  16.   return 'Tak';
  17.   }else if($tab_wynikowa[0]==0){
  18.   return 'Nie';
  19.   }else{
  20.   return 'blad';
  21.   };
  22.   };
  23. };
  24.  
  25. ?>

i teraz dziala tamte nawiasy nic nie daly ale dzieki za zainteresowanie.
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.