Martin Rozmus: FEHLER GEFUNDEN: funktion count und mehrdimensionale Arrays

Beitrag lesen

Hallo alle Interessierten,

ich habe den Fehler Gefunden! Es fehlte ein einfaches unset!!! Kucken:

function person_suchen($such_arr){
  $big_arr = split('[#]',$such_arr);
   for($n=0;$n<count($big_arr);$n++){
          $arr = split('[,. ;]',$big_arr[$n],3);
         if (count($arr)==1){
            $sql=
            "SELECT personen.lfd, personen.nachname,personen.vorname,
            personen.geburtstag, personengruppe.gruppe, personen.kennung
            FROM personen,personengruppe,chron_personengruppe
            WHERE personen.nachname LIKE '".$arr[0]."'
            AND (chron_personengruppe.fk_personen=personen.lfd
            AND personengruppe.lfd = chron_personengruppe.fk_personengruppe
            AND ISNULL(chron_personengruppe.bis))
            ";

}
         elseif(count($arr)==2){
            $sql=
            "SELECT personen.lfd, personen.nachname,personen.vorname,
            personen.geburtstag, personengruppe.gruppe, personen.kennung
            FROM personen,personengruppe,chron_personengruppe
            WHERE chron_personengruppe.fk_personen=personen.lfd
            AND personengruppe.lfd = chron_personengruppe.fk_personengruppe
            AND ISNULL(chron_personengruppe.bis)
            AND personen.nachname LIKE '".$arr[0]."'
            AND personen.vorname LIKE '".$arr[1]."'
            ";
         }
         elseif(count($arr)==3){
            $sql=
            "SELECT personen.lfd, personen.nachname,personen.vorname,
            personen.geburtstag, personengruppe.gruppe, personen.kennung
            FROM personen,personengruppe,chron_personengruppe
            WHERE chron_personengruppe.fk_personen=personen.lfd
            AND personengruppe.lfd = chron_personengruppe.fk_personengruppe
            AND ISNULL(chron_personengruppe.bis)
            AND personen.nachname LIKE '".$arr[0]."'
            AND personen.vorname LIKE '".$arr[1]."'
            AND personen.geburtstag LIKE '".datum_eu2us($arr[2])."'
            ";
         }
         if (isset($sql)){
            $db = mySQL_ini();
            $result = mysql_query($sql,$db);
            $i=0;
            While ($zeile= mysql_fetch_row($result)){
                  $erg_arr[$i]=$zeile;
                  $i++;
            }
            $big_erg_arr[$n]=$erg_arr;
            unset($erg_arr);
            ^^^^^^^^^^^^^^^^
::::::::::::::::::::::::::::::::::::::::::::::::::::::
WENN DIE SUCHE NACH DEM ERSTEN NAMEN Z.B. 3 ERGEBNISSE LIEFERTE UND DIE SUCHE NACH DEM ZWEITEN NUR 1 ERGEBNIS; SO WAR DAS (DER?) $erg_arr ARRAY BEIM DURCHGANG DER ZWEITEN SCHLEIFE IN DEN FELDERN [1][2] MIT DEN WERTEN AUS DEM ERSTEN DURCHGANG DER SCHLEIFE BESETZT. LEDIGLICH WURDE DAS FELD [0] MIT DEM NEUEN SUCHERGEBNIS ÜBERSCHRIEBEN
:::::::::::::::::::::::::::::::::::::::::::::::::::::
         }

}
    if(count($big_erg_arr)==0){
       return false;
    }
    else
    {
       return $big_erg_arr;
    }
 }

Manchmal ist die Lösung so einfach. Danke für eure Hilfe. Vor allem der Tip mit var_dump() hat mich weiter gebracht.

Schönes Wochenende

Gruss Martin