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, ' ');
}
#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:[,#