Cześć, jest tak:
<?php
public $fields;
function __construct()
{
$fields[] = new DataStorer(); //to po prostu kilka pól
}
?>
Następnie mam dwie funkcje:
public function readData()
{
$i = 0;
while(($result = mysql_fetch_assoc($rows))!=null)
{
$fields[$i]->id=$result["ID"];
$fields[$i]->nazwa=$result["nazwa"];
$fields[$i]->pole1=$result["pole1"];
$fields[$i]->pole2=$result["pole2"];
$fields[$i]->pole2=$result["pole3"];
$i++;
}
//ta funkcja najpierw pobiera dane z bazy, a potem jak widać przypisuje.
//po opuszczeniu pętli sizeof($fields) daje 2 (czyli tyle, ile powinno być)
I druga funkcja, która wyświetla dane:
public function toString()
{
echo "<table>
<tr><td>ID</td><td>Nazwa</td><td>Pole1</td><td>Pole2</td><td>Pole3</td></tr>";
for($i = 0; $i<sizeof($fields); $i++)
{
echo "<tr>";
echo "<td>".$fields[$i]->id."</td>".
"<td>".$fields[$i]->nazwa."</td>".
"<td>".$fields[$i]->pole1."</td>".
"<td>".$fields[$i]->pole2."</td>".
"<td>".$fields[$i]->pole3."</td></tr>";
}
echo "</table>";
}
Niestety tutaj przed pętlą sizeof($fields) daje już 0.
Jak to możliwe?