Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: if zawsze true?
Forum PHP.pl > Forum > PHP
dasko
Hmm, pisalem wlasnie sterownik do bazy danych, kiedy tu nagle...lol

Popatrzcie - to kod napisany w celu debugowania:
  1. <?php
  2.  
  3. if(!$result = mysql_query( $query )) {
  4. throw new DBException( $this->error() );
  5. }
  6. elseif($result = mysql_query( $query )) {
  7. throw new DBException( $this->error() );
  8. }
  9.  
  10. ?>

W tym problem, że ten kod dwa razy wyrzuca wyjątek! A to z kolei znaczy, że
Kod
(!$result = mysql_query( $query )) == ($result = mysql_query( $query ))

Oczywiście w obu warunkach użyte jest to samo zapytanie, przy połączonym z bazą skrypcie. Jak to jest możliwe? nie wiem i proszę was o pomoc...

Z góry dzięki winksmiley.jpg
huntercs
Dokładniej rozpatrz znaki =
$tst=2;
if($tst=2) zawsze bedzie true bo przypisujesz wartosc;
jest różne od
if($tst==2) sprawdza warunek poprawnie;
ja tylko tu moge widzieć błąd... cool.gif
dasko
aj właśnie nie kolego biggrin.gif brak ci wiedzy. Watość przypisania jest równa jego prawej stronie. Przykład?
  1. <?php
  2.  
  3. while($row = mysql_fetch_array( $result )) {
  4. // jakies instrukcje
  5. }
  6.  
  7. ?>

pętla się wykonuje dopóki mysql_fecth_array( $result ) == true...

Także to na pewno nie ten problem winksmiley.jpg
NuLL
Sprawdż co się stanie jak dopiszesz zwykłego else z jakimś wyjątkiem na końcu
dasko
nie, użycie else zamiast elseif daje ten sam efekt, znowu wyrzuca 2 wyjątki...;/

Edit:
Problem rozwiązany, dzięki Prometeusz :*
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.