Попытка вывести самого богатого пользователя в моей базе данных через php

0

Я знаю, что это немного новобранец, но я пытаюсь вывести самое богатое имя пользователя на моем сайте. Таким образом, моя таблица называется " Пользователи". У меня есть столбец 1 (" Имя "), содержащий имена всех пользователей, и столбец 2 (" Банк "), содержащий их баланс на счете. Я хотел бы найти самого богатого пользователя и вывести его на свой сайт. Это то, что у меня есть до сих пор.

while ($row2 = mysqli_fetch_array($sqldataGang, MYSQLI_ASSOC)) {
    $sqlgetGang = 'select name from gangs where bank = (select max(bank) from gangs) order by bank;';
    $sqldataGang = mysqli_query($dbcon, $sqlgetGang) or die('Connection could not be established');
    $welthiestGang = $row2['name'];
}

Я знаю, что есть соединение с базой данных, так как у меня есть другая статистика из других таблиц, работающих... Я понятия не имею, почему это не работает... Спасибо за помощь заранее :)

  • 0
    Нет необходимости в подзапросах, просто сделайте обратный порядок по bank и ограничьте количество записей до 1.
Теги:
database

4 ответа

0
Лучший ответ

Вам нужно получить строку из $sqldataGang запроса $sqldataGang.

Добавьте строку, похожую на эту программу, чтобы получить результат сразу после вызова mysqli_query()

$row2 = mysqli_fetch_array($sqldataGang, MYSQLI_ASSOC);

Но, будьте осторожны. Мудрый программист всегда проверяет запросы на ошибки. Вы можете посмотреть, как это сделать в примерах здесь.

  • 0
    И он должен использовать не mysql_query, а mysqli_query. ;)
  • 0
    Упс, @ jonas3344, верно. Ошибка исправлена. Благодарю.
1

Этот запрос должен работать, но вы должны убедиться, что поле "банк" не является VARCHAR, потому что в этом случае максимальное значение будет выбрано буквенным порядком не самым большим числом.

SELECT name FROM gangs WHERE bank = (SELECT MAX(bank) FROM gangs)

Пожалуйста, проверьте тип поля "банк" и сделайте его числовым, а не текстовым (убедитесь, что это целое или реальное)

1
$sql = 'SELECT name FROM gangs ORDER BY bank DESC LIMIT 1';

Это должно сделать это.

0

Использовать этот запрос

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT name,bank FROM Users order by bank desc limit 1";
$result = mysqli_query($conn, $sql);

Это даст вам самого богатого человека на вашем сайте

  • 0
    это даст вам только одну запись, и это будет величайшим
  • 0
    Не все записи, а всего лишь одна запись с наибольшим количеством денег в банке.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню