MySQLi: выбор 5 наиболее распространенных данных в столбце и возврат в порядке отображения - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь выбрать 5 наиболее распространенных слов из столбца с именем favorite из таблицы с именем users.Мне нужны только первые 5, но я хочу, чтобы они вернулись в порядке от 1 до 5 для отображения.Вот имена, например:

user1    Bob Marley
user2    Stan Smiley
user3    Bob Marley
user4    Joe Schmoe

и т. Д.

Для начала у меня есть следующее:

$db_fav_query = mysqli_prepare($con, "SELECT favorite, COUNT(*) AS favCOUNT FROM users GROUP BY favorite ORDER BY favCOUNT DESC LIMIT 5");
$db_fav_query->execute();

$db_fav_result = $db_fav_query->get_result();
$row = $db_fav_result->fetch_assoc();

$fav1 = $row['favorite'];

Я пытаюсь вывести какследует:

  <tr>
    <td><?php echo htmlentities($fav1); ?></td>
    <td><?php echo htmlentities($fav2); ?></td>
    <td><?php echo htmlentities($fav3); ?></td>
    <td><?php echo htmlentities($fav4); ?></td>
    <td><?php echo htmlentities($fav5); ?></td>
 </tr>

Я понимаю, что $fav2, $fav3 и т. д. не были объявлены, но я не уверен, как извлечь их из дБ, чтобы они могли быть назначены как таковые.Я не получаю никаких ошибок, но сейчас $fav1 ничего не возвращает.

1 Ответ

0 голосов
/ 01 февраля 2019

Вам нужен цикл while, чтобы перебрать все строки

while($row = $db_fav_result->fetch_assoc()) {
  $fav = $row['favorite'];
  echo $fav;
}

, чтобы поместить их в таблицу:

<tr>
<?php
while($row = $db_fav_result->fetch_assoc()) {
  $fav = $row['favorite'];
  echo "<td>$fav</td>";
}
?>
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...