Я использую PHP и MySQL (mysqli) в XAMPP, у меня есть выпадающий список, и пользователь должен выбрать один, затем используется запрос, чтобы найти идентификатор выбранного значения, но он не работает. Я уже сделал это еще три раза, и это сработало, но это не так.
$sql = "SELECT foo_id FROM foo_table
WHERE foo_name = 'bar';";
$res = $conn->query($sql);
for ($i = 0; $i < 500; $i++) {
$row = $res->fetch_assoc();
echo $row[row["foo_id"]]
}
Проблема в том, что fetch_assoc ничего не возвращает, хотя переменная $ res возвращает true
$row = mysql_fetch_assoc($res);
$data = array();
$data = $row["foo_id"];
for ($i = 0; $i<500; $i++){
echo $data[$i];
}
Если вы не хотите загружать массив в массив данных, используйте его напрямую
$row = mysql_fetch_assoc($res);
for ($i = 0; $i<500; $i++){
echo $row["foo_id"][$i];
}
Цикл начнется с 1 до 499. Вы можете контролировать это, изменяя значение $ i, что лучше, особенно если вы не хотите ограничивать запрос оператором LIMIT, поэтому результаты будут ограничены $ i
Я не уверен, почему вы повторяете более 500 раз? это не имеет смысла.
Лучшая практика для извлечения данных из БД
$sql = "SELECT foo_id FROM foo_table
WHERE foo_name = 'bar'";
$res = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row["foo_id"];
}
}
$row[row["foo_id"]]
? Это даже дает вам предупреждения (которые являются скрытыми ошибками). Проверьте ваши журналы и сделайте ваш код без ошибок, предупреждений или уведомлений.SELECT
был успешно выполнен, не означает, что в наборе результатов есть какие-либо данные. Сnum_rows
поляnum_rows
вы можете проверить, насколько велик набор результатов.