Люди добрые, завис на простейшей задаче.
Делаю select
запрос к БД с параметрами. Далее вывожу полученный результат в виде выпадающего списка. Но с некоторой долей вероятности - результат может быть пустым. В этом случае mysqli_fetch_assoc
соответственно - ругается. Туплю - не знаю куда поставить проверку на то, что из БД что-то было получено.
Немного рабочего кода(спасибо Алексей Шиманский за напоминание):
<?
$sql = $db->query('SELECT * FROM guests2order WHERE oid="'.$_SESSION['oid'].'"');
$row_num = mysqli_num_rows($sql);
if($row_num != '0'){
echo '<select>';
while($guests = mysqli_fetch_assoc($sql)) {
echo '<option value="'.$guests['id'].'">'.$guests['name'].'</option>';
}
}
echo '</select>';
?>
Соответственно хочется, что бы если из БД ничего не получено - <select>...</select>
- вообще не выводился.
(Если проверять на пустоту $sql
- то оно равно TRUE
, если был вообще получен ответ от БД - даже пустой.)
<?php
$sql = $db->query('SELECT * FROM guests2order WHERE oid="'.$_SESSION['oid'].'"');
$hasValues = false;
if($guests = mysqli_fetch_assoc($sql)){
echo '<select>';
echo '<option value="'.$guests['id'].'">'.$guests['name'].'</option>';
$hasValues = true;
}
while($guests = mysqli_fetch_assoc($sql)) {
echo '<option value="'.$guests['id'].'">'.$guests['name'].'</option>';
}
if($hasValues) echo '</select>';
1) Проверка if(!empty($guests))
не нужна, поскольку mysqli_fetch_assoc
возвращает либо массив с данными, либо false, при котором цикл дальше не пойдет
2) Старайтесь никогда не использовать подобный способ создания SQL-запроса. Используйте подготовленные выражения
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли SQL CLR проект подключить, как библиотеку к консольному приложению и дебажить ее там без деплоя на SQL-сервере?
Здравствуйте, как сделать исчезновение спрайта по истечению например 3-ех секунд на MonoGame/XNA?
Помогите сделать скриншот бразуера, только без видимости вкладок и закладокДелаю вот так, а оно делает скриншот не всего окна