Originariamente inviato da seokey
così stampa tutto e non va bene...
però perché me li stampa doppi?
Per via di un errore molto banale che su questo forum capita con frequenza stupefacente.
Questo pezzo di codice:
Codice PHP:
while ($row = mysql_fetch_array($result)) {
$id = $row['idarg'];
$titolo = $row['titolo'];
$testo = $row['testo'];
}
esegue un ciclo tante volte quante sono i record restituiti dalla query, ma ogni volta registra i valori NELLE STESSE VARIABILI sovrascrivendole quindi ad ogni giro. Poi tu esegui un ciclo for e stampi questo valore tutte le volte.
Se faccio cosi':
Codice PHP:
$id = 1;
$id = 2;
$id = 3;
alla fine quanto vale $id?
Non puoi registrare piu' valori in una semplice variabile, devi usare un array. Esempio:
Codice PHP:
$result = array()
while ($row = mysql_fetch_array($result)) {
$result[] = array(
'id' = $row['idarg'];
'titolo' = $row['titolo'];
'testo' = $row['testo'];
);
}
e per stampare i contenuti usi questa forma:
Codice PHP:
<table>
<?php foreach ( $result as $record ): ?>
<tr>
<td><?php echo $record['id']; ?></td>
<td><?php echo $record['titolo']; ?></td>
<td><?php echo $record['testo']; ?></td>
</tr>
<?php endforeach; ?>
(ovviamente il markup HTML e' solo un esempio).