У меня есть база данных и таблица, в которой хранятся локальные IP-адреса и информация для авторизации. Я пытаюсь получить IP всех серверов, но получаю только первый. И я не знаю, как это исправить, это вообще возможно?
PHPMyAdmin:
Код :
Кстати, внутренний цикл не нужен. Вы выбираете только один столбец, поэтому просто поставьте $row['host']
в <option>
У серверов есть id, пытаюсь выбрать по id, 192.168.1.228 - id 0, 192.168.1.229 - id 0.
Я получаю следующий массив: Массив -> [хост] 192.168.1.228, [0] 192.168.1.228
192.168.1.229 = id 1
mysqli_fetch_array()
возвращает как числовые, так и именованные индексы, поэтому он возвращает каждый столбец дважды.
Бармар, поменял id после скриншота, не помогло.
так что, может быть, ошибка в таблице? или что-то не так с кодом?
На что вы изменили идентификатор? Пока у вас есть WHERE id = something
, он вернет только один хост.
Если вы хотите их все, используйте SELECT host FROM baseip
без пункта WHERE
.
Пожалуйста, опубликуйте свой код в виде обычного текста, чтобы мы могли скопировать и вставить. Сделайте отступ на 4 пробела с помощью инструмента {}
.
Если вам нужны все хосты, не используйте предложение WHERE
, которое ограничивает определенные идентификаторы.
$result = $conn->query("SELECT host FROM baseip");
while ($row = mysqli_fetch_assoc($result)) {
echo "<option>" . $row['host'] . "</option>";
}
Неустранимая ошибка: Uncaught TypeError: mysqli_fetch_assoc(): Аргумент №1 ($result) должен иметь тип mysqli_result, bool указан в C:\xampp\htdocs\register.php:128 Трассировка стека: #0 C:\xampp\htdocs\ register.php(128): mysqli_fetch_assoc(false) #1 {main} добавлено в C:\xampp\htdocs\register.php в строке 128
Это была опечатка baseiip
Вы выбрали только
id=0
. Почему вы ожидаете получить другие серверы?