Vinzenz Mai: function ausgabe funktioniert nicht

Beitrag lesen

Hallo,

if(mysql_num_rows($einlesen)>0) return true; else return false;

ist mir nur auf die Schnelle aufgefallen - das ist ja wirklich von hinten durch die Brust ins Knie. Das lässt sich kürzer und übersichtlicher schreiben:

wie ich bereits erwähnte, ist es überhaupt keine gute Idee, sich Datensätze zurückgeben zu lassen, an denen man nicht interessiert ist, von denen man nur wissen will, ob die Anzahl größer ist als 0.

return (mysql_num_rows($einlesen)>0);

wenn schon, dann geht's noch kürzer:

return mysql_num_rows($einlesen);

Verlangt natürlich das Wissen, um die Konvertierungsregeln von int nach bool.
Wie von mir angemerkt ist es viel sinnvoller, gleich die Anzahl der Datensätze abzufragen, oder gleich True oder False:

SELECT  
    CASE  
        WHEN COUNT(*) > 0 THEN 1   -- True ist in MySQL ein Alias für 1  
        ELSE 0                     -- False ist ein Alias für 0  
    END hasChildren  
FROM  
    navigation  
WHERE  
    parent_id = Vergleichswert  
-- es gibt SQL-Dialekte, die mit True und False nichts anfangen können :-)  

Wie dem bereits verlinkten Kontextwechselartikel zu entnehmen ist, wäre hier intval() eine kontextgerechte Behandlungsmethode in PHP für den Vergleichswert.

Freundliche Grüße

Vinzenz