if-Abfrage in if-Abfrage ?

Sebigf

Erfahrenes Mitglied
Hallo zusammen! :)

Geht mir um folgendes...

Ich habe eine Abfrage im Script.

Wenn diese "nicht" == 0 ist, dann....

Code:
if(mysql_num_rows($result) != 0)
{

Nun wollte ich diese Abfrage erweitern mit

Code:
if(mysql_num_rows($result) != 0 AND $auswahl[0] == $var1)
{

Aber "$auswahl[0]" ist nicht immer belegt.
Nun zu meinem Problem....

Wie kann ich in/vor der If-Abfrage prüfen ob diese $var voll ist ?
Kann ich es irgendwie anstellen, vor dem AND zu prüfen, ob diese Variable gesetzt ist?

Wenn ja, wie mache ich das?

PS: Sorry, dass ich es so schwer erkläre, aber ich weis net wie ich es sonst sagen soll :)

Danke
 
PHP:
if(mysql_num_rows($result) != 0 && isset($auswahl[0]) && $auswahl[0] == $var1)
{
Du wirst damit keine Fehlermeldung erhalten, da der Ausdruck von links nach rechts ausgewertet wird.
Wenn sich an einer Bedingung ergibt, dass der Ausdruck zwangsläufig false wird (hier durch "und"), wird der Rest gar nicht mehr geprüft.
Gruß hpvw
 
Danke für die Antwort :)

Aber das ist leider nicht genau das was ich suche.
Es geht mir darum, dass er "NUR" bei der "vollen" Variable auch den Rest prüft.

Ich weis nicht, wie ich das genau beschreiben soll :)

Sagen wir es so...

Wenn var1 gesetzt ist, soll diese geprüft werden. Sonst diese Variable ignorieren!
Aber trotzdem die andere Abfrage auswerten, als währe "var1" nicht da. ^^

Vielleicht erklärt dies das etwas besser!

Danke
 
Zuletzt bearbeitet:
Dann hole ich mal die boolsche Keule raus.
Hier ein Versuch:
PHP:
if(mysql_num_rows($result) != 0 && (!isset($var1) || $auswahl[0] == $var1))
In Deinem ersten Post habe ich es so verstanden, dass $auswahl[0] nicht immer gesetzt ist, nun schreibst Du $var1, was denn nun?

Gruß hpvw

EDIT: Ich habe den sinnvollen Kommentar von Command im folgenden Post noch eingearbeitet:
PHP:
if(mysql_num_rows($result) != 0 && (empty($var1) || $auswahl[0] == $var1))
 
Zuletzt bearbeitet:
Also um zu überprüfen ob $var1nicht leer ist würde ich if(!empty($var1)) benutzen man kann auch mit if(!isset($var1)) überprüfen ob die variable nicht gesetzt wurde, ich hoffe es hilft dir weiter ;)
 
@hpvw:

sorry, mein fehler :) ich meinte $auswahl[0]

Wie auch immer, es immernoch nicht, leider!
Es geht nur einfach darum, wenn $auswahl[0] gesetzt ist, dann diese prüfen.
Sonst $auswahl[0] igonorieren und nur "mysql_num_rows($result) != 0" prüfen.

Sorry, dass ich es so kompliziert erkläre....hab nur leider absolut keinen plan, wie ich das anstellen soll! *g

Danke
 
Dann kannst Du das doch anpassen?
PHP:
if(mysql_num_rows($result) != 0 && (!isset($auswahl[0]) || $auswahl[0] == $var1))
Die Ergebnisse:
1. my...rows ist ungleich 0 (erster Teil gibt true)

Wenn $auswahl[0] nun gesetzt und gleich $var1 ist:
Der erste Ausdruck ist true, nach dem && wird geprüft.
isset ergibt true, negiert ergibt das false.
Der Teil zwischen den Klammern muss also noch geprüft werden (wg. oder).
der Ausdruck danach ergibt true, da die beiden gleich sind.
Das Ergbnis ist damit true

Wenn $auswahl[0] nun gesetzt und ungleich $var1 ist:
Der erste Ausdruck ist true, nach dem && wird geprüft.
isset ergibt true, negiert ergibt das false.
Der Teil zwischen den Klammern muss also noch geprüft werden (wg. oder).
der Ausdruck danach ergibt false, da die beiden ungleich sind.
Das Ergbnis ist damit false

Wenn $auswahl[0] nicht gesetzt ist:
Der erste Ausdruck ist true, nach dem && wird geprüft.
isset ergibt false, negiert ergibt das true.
Der Teil zwischen den Klammern muss also nicht mehr geprüft werden (wg. oder).
faktisch wurde nur der numrows-Ausdruck geprüft
Das Ergbnis ist damit true

2. my...rows ist gleich 0 (erster Teil gibt false)
Damit ist der Gesamtausdruck ausgewertet, da alles nach && den Gesamtausdruck nicht mehr ändern können wird
Das Ergebnis ist false.


Wenn das noch nicht hilft, wirst Du Deine Bedingungen etwas präziser und strukturierter aufschreiben müssen.

Gruß hpvw
 
mmh, thx für die Antwort!

Habs gerade nochmal probiert und da ging es....mit deinem code!
Habe ich wohl mist gebaut, sorry! :rtfm:

Naja, darf net mehr so lang vor der gurke sitzen ! :D

DANKE!
 
Zurück