Newsgroup: it.comp.www.php
Titolo: mi spiegate questa cosa??

while($row = mysql_fetch_array($result))
{
}
non riesco a capire questo while...
fa un assegnamento giusto?
ma allora non dovrebbe mai uscire??
Grazie

Principiante wrote:

Dal manuale del PHP
array mysql_fetch_array ( resource result [, int result_type])
Returns an array that corresponds to the fetched row, or FALSE if there 
are no more rows.

 ha scritto nel messaggio
news:BSOua.45275$DN.11...@tornado.fastwebnet.it...


 }
guarda questo esempio, forse ti č piů chiaro:
ti colleghi prima al database (MySql)
$db_host="Nome Host";
$db_login="username";
$db_pass="password";
$db_name="Nome Database";
$link=mysql_connect($db_host, $db_login, $db_pass)or die ("konnte Keine
Verbindung herstellen!");
mysql_select_db ($db_name, $link)
or die ( "Non riesco a selezionare il db $db_name<br>");
$dati = "select * from NEWS order by 'data' desc; // seleziona tutti campi
dalla tabella NEWS e li oridina dalla data piů attuale (desc = decrescente)
$dati_query = mysql_query($dati, $link) or die('Errore: $dati'); // viene
inviata la query al database (MySql)
while($record=mysql_fetch_array($dati_query)){ // leggere l'array
$dati_query e li restituisce (in array) a $record
$news = $record[news]; // per leggere i dati devi usare questo sintassi
$record[nome_colonna_tabella]. Per semplificazione io di solito restituisco
i dati alla variabile che ha lo stesso nome della colonna ke si legge.
Ovviamente puoi usare anche un'altro nome
$data = $record[data]; // ti consiglio di memorizzare i dati in questo campo
con un semplice time()
$utente = $record[utente];
$data = date("d-m-Y ", $data); // converto la data dal formato time (per
esempio: 1044296148) ad una piů leggibile del tipo: 03-02-2003
echo "Oggi ($data) $utente ha scritto:<br>$news "; // stampo a video i
risultati. Basta scrivere una volta - echo -, saranno visualizzate
automaticamente tutte le News lette dal Db
}
in grandi linee....ci sarebbero ancora una sacco di cose da dire ma evito :)
spero di esserti stato d'aiuto
ciao e buon week-end a tutti ;)
by peppe
http://www.italianworld.org

 schrieb im Newsbeitrag
news:6P2va.71594$3M4.1...@news1.tin.it...



La spiegazione tecnica è la seguente (mi baso su conoscenze di C, spero non
ci siano differenze..)
fissiamo alcuni punti:
- while(CONDIZIONE)
 la condizione verrà letta come valore vero/falso. CONDIZIONE può essere
un'espressione
- L'assegnazione è un'espressione e come tutte le altre ritorna un valore.
Nel caso dell'assegnazione il valore ritornato è quello che si assegna. (nel
tuo caso il risultato di mysql_fetch_array()). Questo rende possibili
scritture del tipo
$a = $b = 1000;
$a = ($b = 1000);
che viene letta così: ad $a assegna il valore restituito dall'espressione $b
= 1000. $b diventa 1000, il valore restituito è 1000, $a diventa 1000.
- mysql_fetch_array() restituisce un array ed avanza il puntatore nei
risultati (importante), NULL se non ci sono più righe.
Quindi
if ($a = "ciao") // true
if ($a = 1) // true
if ($a = "") // false
if ($a = 0) // false
if ($a = NULL) // false
quindi la condizione del tuo while è vera fin tanto che ci sono righe nel
risultato. Una volta finite le righe mysql_fetch_array() ritorna NULL,
l'espressione vale NULL, la condizione è falsa e il ciclo termina
Ludovico Grossi