mysqli_query()
retourneert geen array of array-object dat u kunt gebruiken met foreach(). Het retourtype mysqli_query() is een resource. Je haalt het in een lus op, zoals je tweede oplossing.
Het is eenvoudiger om while() te gebruiken in plaats van for():
$cast_list = mysqli_query($dblink, $sql);
while ($role = mysqli_fetch_assoc($cast_list)) {
echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
}
De lus wordt automatisch beëindigd wanneer de opgehaalde rij NULL is aan het einde van de resultatenset. U hoeft het aantal rijen voor de lus niet te weten.
Over uw opmerking:
Na wat feiten opgezocht , moet ik toegeven dat mijn antwoord hierboven niet helemaal waar is. Of is niet waar voor sommige versies van PHP.
In PHP 5.4 is een mysqli_result-bron toegevoegd Iterator
functionaliteit, kunt u eigenlijk kunt gebruik het in een foreach()
. Maar je host gebruikt blijkbaar een oudere versie van PHP.
Het beste is om te ontwikkelen op dezelfde versie van alle software die u gaat implementeren, zodat u niet voor dit soort verrassingen komt te staan.