if epmty-Funktion funktioniert nicht, wie sie soll

  • Hallo!


    Für ein Projekt in der Uni müssen wir eine Homepage mit Datenbankanbindung erstellen. Bei unserem Projekt wollen wir mithilfe eines Formulars auf eine Datenbank mit Personen zugreifen. Es müssen nicht alle Felder ausgefüllt sein und das Ergebnis wird in einem Array festgehalten, das auch problemlos ausgegeben wird, wie wir das wollen.


    Unser jetziges Problem ist jedoch, dass wir, sofern das Array leer ist, die Tabelle nicht angezeigt bekommen möchten, sondern die Aussage, dass es keinen passenden Treffer zu dieser Suche gibt.


    Hierfür wollten wir eine if empty-Funktion verwenden, allerdings muss da irgendetwas falsch sein, da wieder nur eine leere Tabelle ausgegeben wird, wenn man nach einer Person sucht, die nicht in der Datenbank vorhanden ist. Fehlermeldungen gibt es keine.


    Der Ausschnitt aus der betreffenden Code-Stelle:



    Kann uns jemand helfen?

  • Die Funktion empty gibt im Falle, dass ein Array keine Werte (oder leer ist), aber dafür Keys besitzt, true zurück. Auf diesen Umstand bin ich selber vor kurzem aufmerksam geworden.


    Man kann zB mittels foreach das Array durchlaufen und die Werte einzeln mit der Funktion empty überprüfen:

    Code
    1. foreach ($array as $value){if (!empty($value)){ // Zeige Tabelle}}


    In einem anderen "namhaften" Forum wird für das Ermitteln, ob ein Array leer ist oder nicht, array_filter() empfohlen. Dies ist wohl bei einer True/False Abfrage, ob ein Array leer ist, der "vernünftigere" Ansatz.