|
| mysql_fetch_row Fra : Anders Lund |
Dato : 17-01-02 21:48 |
|
Jeg kan af en eller anden grund ikke forstå hvordan denne funktion virker:
mysql_fetch_row
Jeg har set den brugt som her:
$database = mysql_connect("127.0.0.1","root","")
mysql_select_db("database",$database)
$forsp = mysql_query("select id from tabel")
while ($data = mysql_fetch_row($forsp)) echo $data[1];
Hvad har data med noget af gøre, den bliver jo på intet tidspunkt tilskrevet
nogen værdi. Hvordan kommer while lykken overhoved igang. For $data, som er
tom, og mysql_fetch_row, som indeholder en post, er vel på intet tidspunkt
ens.
Jeg håber der er en venlig sjæl der vil beskrive hvad der sker.
Mvh
Anders Lund
| |
Christian Schmidt (17-01-2002)
| Kommentar Fra : Christian Schmidt |
Dato : 17-01-02 22:06 |
|
Anders Lund wrote:
>
> Jeg kan af en eller anden grund ikke forstå hvordan denne funktion virker:
> mysql_fetch_row
>
> Jeg har set den brugt som her:
>
> $database = mysql_connect("127.0.0.1","root","")
> mysql_select_db("database",$database)
> $forsp = mysql_query("select id from tabel")
> while ($data = mysql_fetch_row($forsp)) echo $data[1];
>
> Hvad har data med noget af gøre, den bliver jo på intet tidspunkt tilskrevet
> nogen værdi. Hvordan kommer while lykken overhoved igang. For $data, som er
> tom, og mysql_fetch_row, som indeholder en post, er vel på intet tidspunkt
> ens.
Du bytter om på betydningen af = og ==, der betyder hhv. tildeling og
sammenligning.
$data bliver således tilskrevet værdi ved "$data =
mysql_fetch_row($forsp)".
En tildeling evaluerer desuden til den værdi, der bliver tildelt. I
dette tilfælde betyder det, at while-løkken vil fortsætte, så længe
$data bliver tildelt en værdi, der kan castes til true.
Til sammenligning vil denne stump kode udskrive 2-taller i al evighed:
$i = 1;
while ($i = 1) {
$i = 2;
print $i;
}
Men denne stump kode vil udskrive et enkelt 2-tal og herefter terminere:
$i = 1;
while ($i == 1) {
$i = 2;
print $i;
}
Christian
| |
|
|