Sascha Knappe: Zugriff auf Array

Hallo,

ich habe folgendes Problem...
Ich möchte eine Ergebnismenge in eine Tabelle legen und spaltenweise abwärts, nach Namen sortiert, ausgeben.
Nach einer Datenbankabfrage packe ich die Ergebnisse  mit "setter-Methoden" in ein Objekte und per array_push ins Array $arr_rs. Es gibt genau 208 Ergebnisse, also 208 Objekte.
Ich gehe wie folgt vor:

$cols = 4;
 $i = 1;
 $herstellerHandler = new HerstellerHandler();
 $arr_rs = $herstellerHandler->getAllHersteller($con);
 $anzahl = count($arr_rs);

function ausgabeInSpalten($cols, $arr_rs)
 {
     #$cols = 5;
     $anzahl = count($arr_rs);
     #echo 'Anzahl: '.$anzahl.'<br>';
     $anzahl_pro_array = intval($anzahl / $cols);
     #echo 'Anzahl pro Array: '.$anzahl_pro_array.'<br>';
     $rest = $anzahl - ($cols * $anzahl_pro_array);
     #echo 'Rest: '.$rest.'<br>';
     if($rest > 0)
     {
      $arr_anzahl = $anzahl_pro_array +1;
     }
     else
     {
      $arr_anzahl = $anzahl_pro_array;
     }
     $arr_result = array();
     $arr_result = array_chunk($arr_rs, $arr_anzahl);
     $string = '<table border="0" width="80%">';
     $anz_letztes_array = count($arr_result[$cols-1]);
     $diff = $arr_anzahl - $anz_letztes_array;
     #echo 'Ergebnis: '.$arr_anzahl.' - '.$anz_letztes_array.' = '.$diff.'<br>';
     if($diff > 0)
     {
      $arr_result[$cols-1] = array_pad($arr_result[$cols-1], $diff+2, '&nbsp;');
     }
     #echo '<pre>';
     #print_r($arr_result);
     #echo '</pre>';

for($r = 0; $r <= $arr_anzahl; $r++)
     {
      $string.= '<tr>';
      $objekte1 = $arr_result[0][$r];
      $objekte2 = $arr_result[1][$r];
      $objekte3 = $arr_result[2][$r];
      $objekte4 = $arr_result[3][$r];
      #echo '<pre>';
      #print_r($objekte1);
      #echo '</pre>';
      foreach($objekte1 as $objekt1)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte1->getHerstellerID().'">'.$objekte1->getName().'</a></td>';
       break;
      }
      foreach($objekte2 as $objekt2)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte2->getHerstellerID().'">'.$objekte2->getName().'</a></td>';
       break;
      }
      foreach($objekte3 as $objekt3)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte3->getHerstellerID().'">'.$objekte3->getName().'</a></td>';
       break;
      }
      foreach($objekte4 as $objekt4)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte4->getHerstellerID().'">'.$objekte4->getName().'</a></td>';
       break;
      }
      $string.= '</tr>';
  }
     $string.= '</table>';
  return $string;

}
 echo ausgabeInSpalten($cols, $arr_rs);

Es gibt die Warnung: Warning: Invalid argument supplied for foreach() in I:\wampp2\htdocs\humidoronline\zigarren.php on line 190

Bekomme so aber trotz der Warnung meine richtige Ausgabe.
Lasse ich die foreach-Schleifen weg, dann funktioniert meine Ausgabe nicht mehr.
Wie greife ich richtig auf meine Objekte zu?

Vielen Dank für eure Antworten.

Schönen Gruß aus München

die knappschaft

--

sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
  1. Moin Sascha,

    Es gibt die Warnung: Warning: Invalid argument supplied for foreach() in I:\wampp2\htdocs\humidoronline\zigarren.php on line 190

    ohne deinen Quelltext gecheckt zu haben, welches ist den Line 190?

    Grüsse
    Mike

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hallo Mike,

      die Warnung kommt jeweils für die Zeilen mit foreach...

      Schönen Gruß aus München

      die knappschaft

      --

      sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
      1. Moin Sascha,

        die Warnung kommt jeweils für die Zeilen mit foreach...

        mal ein Schnellschuß: $objekte1 bis $objekte..nnn...
        sind kein arrays!?

        Schaue mal hier:
        http://de3.php.net/manual/de/control-structures.foreach.php

        regds
        Mike

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. Hallo Mike,

          ja, das ist mir schon klar. Aber wenn ich die foreach-Schleife auskommentiere, dann bekomme ich gar kein Ergebnis?!

          Wenn ich aber die foreach "ins Leere" laufen lasse, dann bekomme ich zumindest ein Ergebnis - bis auf die störende Warning von PHP.

          Schönen Gruß aus München

          die knappschaft

          --

          sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
  2. Moin!

    Es gibt die Warnung: Warning: Invalid argument supplied for foreach() in I:\wampp2\htdocs\humidoronline\zigarren.php on line 190

    Wie liest du die Datenbank aus?

    - Sven Rautenberg