perché con il fetch_array/assoc/row/object non si usa affatto il for each ma il whileOriginariamente inviato da gipos70
forse ho risolto ma non mi sembra una best practice...
il metodo Visualizza è diventato:
.........
function Visualizza() {
$this->query="select * from Cartolina";
$this->recordset = mysql_query($this->query,$this->Connections);
$this->row=mysql_fetch_array($this->recordset);
$rows=mysql_num_rows($this->recordset);
for($ii=0;$ii<=rows;$ii++) {
$this->myCollection[$ii]=new Entity($this->row["nome"],$this->row["codice"],$this->row["commento"],$this->row["percorsofoto"],$this->row["id"]);
}
}
in effetti adesso funziona....non capisco come far funzionare il tutto con foreach.
P.s. tutto il resto (anche il front end) e rimasto invariato)
ho sistemato il codice, l'ho reso un pò più leggibile, ho ottimizzato un pò il funzionamento in termini di velocità e risorse di memoria ed infine ho aggiunto un check sugli errori nella query che effettuicodice:function Visualizza() { $sql = "SELECT * FROM Cartolina"; $query = @mysql_unbuffered_query($sql , $this->Connections) or die('Errore ' . mysql_error() . ' durante l'esecuzione della query ' . $sql . ' nel file ' . __FILE__ . ' alla linea ' . __LINE__); $this->myCollection = array(); while($row = mysql_fetch_assoc($this->query)) { $this->myCollection[] = new Entity($row["nome"], $row["codice"], $row["commento"], $row["percorsofoto"], $row["id"]); } mysql_free_result($query); }
http://www.php.net/mysql_unbuffered_query
http://www.php.net/mysql_free_result
http://www.php.net/mysql_fetch_assoc
http://www.php.net/while
http://it.php.net/manual/en/language...predefined.php