mysqli_query()
không trả về một mảng hoặc đối tượng mảng mà bạn có thể sử dụng với foreach (). Kiểu trả về của mysqli_query () là một tài nguyên. Bạn tìm nạp từ nó trong một vòng lặp, giống như giải pháp thứ hai của bạn.
Sẽ đơn giản hơn khi sử dụng while () thay vì for ():
$cast_list = mysqli_query($dblink, $sql);
while ($role = mysqli_fetch_assoc($cast_list)) {
echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
}
Vòng lặp sẽ tự động kết thúc khi hàng được tìm nạp là NULL ở cuối tập kết quả. Bạn không cần biết số hàng trước vòng lặp.
Nhận xét lại của bạn:
Sau khi tra cứu một số thông tin , Tôi phải thừa nhận rằng câu trả lời của tôi ở trên không hoàn toàn đúng. Hoặc không đúng với một số phiên bản PHP.
Trong PHP 5.4, một tài nguyên mysqli_result được thêm vào Iterator
chức năng, bạn thực sự có thể sử dụng nó trong foreach()
. Nhưng máy chủ của bạn dường như sử dụng phiên bản PHP cũ hơn.
Cách tốt nhất là phát triển trên cùng một phiên bản của tất cả phần mềm mà bạn sẽ triển khai, vì vậy bạn không bị bất ngờ như thế này.