Итак, если мой заголовок немного запутан, что я считаю. И, кстати, я использую API-интерфейс medoo для своего sql, так что это всего лишь небольшая информация, так что вы не путаете следующие примеры.Подсчет числа находок столбца
Пример ТАБЛИЦА
+----+------------+----------------+-------------+
| id | playerName | infractionType | infractedBy |
+----+------------+----------------+-------------+
| 1 | Alpha | ET1 | Admin |
| 2 | Alpha | ET1 | Admin |
| 3 | Alpha | ET1 | Admin |
| 4 | Delta | ET1 | Admin |
| 5 | Echo | ET1 | Admin |
| 6 | Echo | ET1 | Admin |
| 7 | Delta | ET1 | Admin |
| 8 | Alpha | ET1 | Admin |
+----+------------+----------------+-------------+
Хорошо, так что давайте перейдем к основам. Если вы делаете петлю Еогеасп так:
foreach ($medoo->query("SELECT * FROM table1) as $entry) {
echo $entry['playerName'];
}
Так как вы должны знать, что будет печатать все Playername. Теперь я хочу, чтобы распечатать происхождение playerName и выйти из него. Таким образом, для неупорядоченной печати, код будет где-то вдоль этих линий:
foreach ($medoo->query("SELECT DISTINCT playerName FROM table1) as $entry) {
echo $entry['playerName'];
echo $medoo->count("infractions", ["playerName" => $entry['playerName']);
}
ОДНАКО КАК УКАЗАНО «ЭТО НЕ ORDERED», что я хочу, чтобы заказать который я не имею ни малейшего понятия о том, как это сделать так. Я просмотрел весь google, увидев команду count() 'sql, но для меня это вообще бесполезно, насколько я вижу.
То, что я хочу знать
- Есть ли SQL заявление, которое будет соответствовать моим потребностям? Если так, то, что это.
- Если это невозможно с SQL STATEMENT, то возможно ли создать сортировку с помощью php? (Я так считаю лично).
Текущий код
foreach ($GoldenData->query("SELECT DISTINCT playerName FROM infractions") as $player) {
foreach ($GoldenData->query("SELECT COUNT(playerName) AS playerName FROM infractions WHERE playerName = '" . $player['playerName'] ."' ORDER BY COUNT(playerName) DESC") as $infracted) {
echo "<tr>";
echo "<td>";
echo $player['playerName'];
echo "</td>";
echo "<td>";
echo $infracted['playerName'];
echo "</td>";
echo "<tr>";
}
}
То, что я хочу ОБЪЯСНЕНИЕ
Это также в комментариях, но я просто добавить его здесь так что другие люди могли видеть это лучше.
Таким образом, идея состоит в том, чтобы сортировать по счету TOTAL INFRACTIONS и упорядочивать их по убыванию (от большей до минимума). Теперь проблема заключается в том, что у меня нет столбца «totalInfractions», который я не хочу добавлять, если нет НИКАКОГО ДРУГОГО способа сделать это без столбца. Поэтому вопрос заключается в том, можно ли это сделать без добавления столбца «totalInfractions» или если есть другой способ сделать это с помощью других SQL STATEMENTS или PHP Functions.
Если вы не понимаете что-то, пожалуйста, сообщите мне, и я попробую его очистить. Я понимаю, что я прошу, это немного запутанно.
я не понимаю, что вывод, который вы ожидаете –
я нахожу ваш вопрос запутанным. Вы хотите, чтобы «SELECT playerName, COUNT (playerName) AS возникло из таблицы 1 GROUP BY playerName ORDER BY Вступление DESC '? – markdwhite
@ Выход Dagon в основном totalInfractions и имя игрока в порядке убывания. – RepeaterCreeper