Martin Rozmus: funktion count und mehrdimensionale Arrays

Beitrag lesen

Hallo Christoph,

hier ist ein Ausschnitt aus dem Code:

$arr=person_suchen($_REQUEST['suchwert']);
.....

<ul>
<?
   $arr_suchwert=split('[#]',$_REQUEST['suchwert']);
   $i=0;
   for ($n=0;$n<count($arr);$n++){
?>
<p>Die Suche nach <b><? echo $arr_suchwert[$n]  ?></b> ergab <b><? echo count($arr[$n]) ?></b> Suchergebnisse
                                                                    ^^^^^^^^^^^^^^ hier steckt der Teufel
für das Formular <b><? echo $zeile[0] ?></b></p>
<?
         for($i;$i<count($arr[$n]);$i++){
?>
         <li>
             <a href="../haupt/eingabe.php?incl=<? echo urlencode($_REQUEST['ziel']) ?>&lfd=<? echo $arr[$n][$i][0] ?>">
              <? echo $arr[$n][$i][0].", ".$arr[$n][$i][1].", ".$arr[$n][$i][2].
              ", ".datum_us2eu($arr[$n][$i][3]).", ".$arr[$n][$i][4] ?>
             </a>
         </li>
<?

}
   }
?>
  </ul>

Etwas zu Hintergrund: In ein einzeiliges Textfeld kann man Name [Vorname][Geburtsdatum] mehrerer Personen eingeben, um nach ihnen in einer DB zu suchen. Die Personen werden mit # getrennt, die Werte in [] sind optional.
Die Funktion hierfür:

function person_suchen($such_arr){
  $big_arr = split('[#]',$such_arr);
   $i=0;
   for($n=0;$n<count($big_arr);$n++){
          $arr = split('[,. ;]',$big_arr[$n],3);
         if (count($arr)==1){
            $sql=
            "SELECT...WHERE... AND personen.nachname LIKE '".$arr[0]'
            ";
         }
         elseif(count($arr)==2){
            $sql=
            "SELECT...Where...AND personen.nachname LIKE '".$arr[0]' AND personen.vorname LIKE '".$arr[1]."'
            ";
         }
         elseif(count($arr)==3){
            $sql=
            "SELECT ...
            WHERE ...
            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);

While ($zeile= mysql_fetch_row($result)){
                  $erg_arr[$i]=$zeile;
                  $i++;
            }
         }
     $big_erg_arr[$n]=$erg_arr;
   }
    if(count($big_erg_arr)==0){
       return false;
    }
    else
    {
       return $big_erg_arr;
    }
 }

Vielen Dank schon,

Gruss aus Göttingen
Martin