Я занимаюсь созданием системы обзора института, и я только что завершил вставку обзоров в базу данных. Однако я исправлю, как отображать пользователю все отзывы, относящиеся к конкретному институту. Ниже мой код для получения информации о рассмотрении вместе с именем человека, который оставил свой отзыв:Распечатайте все обзоры, хранящиеся в базе данных
$get_review_query = "SELECT * FROM reviews WHERE institute_id = {$id}";
$result = mysqli_query($connection, $get_review_query);
if(!$result) {
die("Database query failed.");
}
$count = mysqli_num_rows($result);
if($count == 0) {
$output = "There're no reviews for this institute.";
} else {
while($row = mysqli_fetch_assoc($result)) {
$review_contents = $row['content'];
$institute_id = $row['institute_id'];
$student_id = $row['student_id'];
$date = $row['created_on'];
$query_student_name = "SELECT f_name, l_name FROM students
WHERE student_id = {$student_id}";
$result1 = mysqli_query($connection, $query_student_name);
if(!$result1) {
die("Database query failed.");
} else {
$row1 = mysqli_fetch_assoc($result1);
$student_f_name = $row1['f_name'];
$student_l_name = $row1['l_name'];
}
}
}
Теперь я хочу, чтобы отобразить отзывы где-то на странице:
<!-- display reviews -->
<fieldset>
<legend>Reviews for <?php echo $name; ?></legend>
<br>
<?php
foreach($row as $value) {
?>
<legend><?php echo $student_f_name . " ". $student_l_name; ?> said:</legend>
<div id = "items" class="">
<?php echo $review_contents; ?>
</div>
<br>
<div>
<?php echo $date; ?>
</div>
<?php } ?>
</fieldset>
выше foreach loop не работает. Вероятно, это создает бесконечный цикл. Я попытался использовать цикл for с числом count как максимальным счетчиком, но это тоже не работает. Пожалуйста, предложите цикл for, который печатает все отзывы из базы данных.
Второй цикл не работает, потому что после того, как вы прочитали все результаты, '$ row' является' NULL' и вы не сохранили отдельные результаты любого массива. В первом цикле добавьте результаты в другой массив (или просто выведите их на лету) и покажите эти результаты. – drew010
@ drew010 все еще не может понять. Не могли бы вы дать подробный ответ? – snow
Вы должны получать и хранить данные в массиве. в вашем 'while ($ row = mysqli_fetch_assoc ($ result))' loop напишите что-то вроде '$ myData [] = $ row', а затем сделайте цикл foreach для' $ myData' –