Я пытаюсь перебрать таблицу и вывести значения из строки, только если определенное значение не пустое.
+------------------+ | значение_1 | значение_2 | + ------------------ + | Тим | 56 | + --------- + -------- + | Джек | | + --------- + -------- + | Сэм | 33 | + --------- + -------- +
$result = mysql_query("SELECT value_1, value_2 FROM database");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
if (!empty($row[value_2])){
printf("First Value: %s Second Value: %s", $row[value_1], $row[value_2] )or die($myQuery."<br/><br/>".mysql_error());
}
}
Так что в этом случае я хотел бы выложить только данные для Тима и Джека.
Если я удалю !
из оператора if, чтобы распечатать все данные там, где они пустые, это похоже на работу, однако, как только Itry и переключить его и добавить !
ничего не выводится.
Сделайте это в вашем запросе.
SELECT value_1, value_2 FROM database WHERE value_2 != ''
Для предоставленного вами кода это будет гораздо более простой вариант, поскольку вам придется выполнять меньше работы в PHP (вы можете просто распечатать значение).
Редактировать — исправлена ошибка, упомянутая в комментарии ниже.
Измените строку printf на эту:
printf("First Value: %s Second Value: %s", $row['value_1'], $row['value_2'] )or die($myQuery."<br/><br/>".mysql_error());
Вы пропустили кавычки вокруг значений базы данных.
Изменено $ row на целочисленные индексы массива
$row['value_1']
> $row[0]
Не самое лучшее из исправлений, но это делает работу на данный момент