Zuweisung (Brett vorm Kopf)

Wolfsbein

Erfahrenes Mitglied
Hallo
ich versuche seit zwei Stunden dieses Problem zu lösne:
PHP:
// Das geht nicht sondern liefert ein
// mysql_fetch_array(): supplied argument is not a valid MySQL result resource
// Die echo Ausgabe findet aber noch statt
if($hMySQLResult = $cHSDB->getData('shoes',$rgKeys,$rgCondition) !== null) {
    echo '<b>Select 2: </b>alles roger<br />';
    while($rgDB = mysql_fetch_array($hMySQLResult) ) {
        echo '<pre>';
        print_r($rgDB);
        echo '</pre>';
    }
} else {
    echo $cHSDB->getLastError();
}

// Das geht und liefert das gewünschte Ergebnis
$hMySQLResult = $cHSDB->getData('SHOES',$rgKeys,$rgCondition);
while($rgDB = mysql_fetch_array($hMySQLResult)) {
    echo '<pre>';
    print_r($rgDB);
    echo '</pre>';
}
Wo ist der Fehler?
 
Hm, ich weiss nicht, wie die Proritäten bei den PHP-Operatoren sind, aber versuchs mal so mit Klammern:
PHP:
if (($hMySQLResult = $cHSDB->getData('shoes',$rgKeys,$rgCondition)) !== null)
Weil: Wenn !=== eine höhere Priotität als = hat (was ich vermute) wird der Variable hMySQLResult das Ergebnis von $cHSDB->getData('shoes',$rgKeys,$rgCondition)) !== null zugewiesen, also true oder false.
 
Tatsache das wars :cool:. Da hätte ich selber draufkommen müssen :(.
Ich bin aber wohl nicht draufgekommen, weil das nämlich geht:
PHP:
if($iID = $cHSDB->getForeignKey('BRANDS','Nike') !== null) {
    echo '<b>Fremdschlüssel: </b>Nike = '.$iID.'<br />';
} else {
    echo $cHSDB->getLastError();
}
Hier wird zwar kein Handle zurückgegeben, sondern ein Integer, aber der Aufbei in der if-Abfrage ist der gleiche :confused:.
 
Zurück