mysqli_fetch_array
будет извлекать строку независимо от того, являются ли столбцы в этой строке нулевыми. Вы хотите проверить, установлено ли $row['description']
вместо установленного $row
:
$query = "SELECT description FROM posts WHERE id = $id";
$result = mysqli_query($dbc, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(isset($row['description'])) {
echo "<p>No description</p>";
} else {
echo '<p>' . $row['description'] . '</p>';
}
РЕДАКТИРОВАТЬ: Или, в качестве альтернативы, вы можете не извлекать строки из базы данных, где описание NULL:
$query = "SELECT description FROM posts WHERE id = $id AND description IS NOT NULL LIMIT 1";
$result = mysqli_query($dbc, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(! $row) {
echo "<p>No description</p>";
} else {
echo '<p>' . $row['description'] . '</p>';
}
Теперь вы бы проверили, смогли ли вы взять строку или нет.