mysqli_query()
nie zwraca tablicy ani obiektu tablicy, którego można użyć z funkcją foreach(). Typ zwracany przez mysqli_query() to zasób. Pobierasz z niego w pętli, tak jak drugie rozwiązanie.
Łatwiej jest użyć while() zamiast for():
$cast_list = mysqli_query($dblink, $sql);
while ($role = mysqli_fetch_assoc($cast_list)) {
echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
}
Pętla zakończy się automatycznie, gdy pobrany wiersz będzie miał wartość NULL na końcu zestawu wyników. Nie musisz znać liczby wierszy przed pętlą.
Odpowiedz na swój komentarz:
Po sprawdzeniu kilku faktów , muszę przyznać, że moja odpowiedź powyżej nie jest do końca prawdziwa. Lub nie jest prawdą w przypadku niektórych wersji PHP.
W PHP 5.4 dodano zasób mysqli_result Iterator
funkcjonalność, faktycznie możesz użyj go w foreach()
. Ale twój host najwyraźniej używa starszej wersji PHP.
Najlepszą praktyką jest programowanie w tej samej wersji wszystkich oprogramowanie, na którym będziesz wdrażać, więc nie będziesz zaskoczony tego rodzaju niespodzianką.