mysqli_query()
returnerer ikke et array eller et array-objekt, som du kan bruge med foreach(). Returtypen af mysqli_query() er en ressource. Du henter fra den i en løkke, ligesom din anden løsning.
Det er nemmere at bruge while() i stedet for for():
$cast_list = mysqli_query($dblink, $sql);
while ($role = mysqli_fetch_assoc($cast_list)) {
echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
}
Sløjfen afsluttes automatisk, når den hentede række er NULL i slutningen af resultatsættet. Du behøver ikke at kende antallet af rækker før løkken.
Om din kommentar:
Efter at har slået nogle fakta op , jeg må indrømme, at mit svar ovenfor ikke er helt sandt. Eller er det ikke sandt for nogle versioner af PHP.
I PHP 5.4 tilføjede en mysqli_result-ressource Iterator
funktionalitet, du faktisk kan brug det i en foreach()
. Men din vært bruger tilsyneladende en ældre version af PHP.
Den bedste praksis er at udvikle på den samme version af all software, som du vil implementere til, så du ikke bliver fanget af denne form for overraskelse.