Как проверить, является ли запись mysql пустой в PhP?

вот переменная описания, которую я повторяю из таблицы:

$description = mysql_result($result,$i,"description"); 

иногда запись $ i'th пуста и не содержит в ней никаких данных / описания.

То, что я хочу сделать, это echo «Нет описания» для записей, которые пусты

 if (isset($description)){ echo "No description available";} else{ echo $desctipion;} 

Моя попытка не работает, хотя она повторяет эхо. Нет описания для каждой записи, даже те, которые не пусты.

Какой ответ?

    isset($description) будет истинным, потому что $ description все еще задано, хотя его значение «пусто». То, что вам нужно использовать, пуст .

     if (empty($description)) { echo "No description available"; } else { echo $description; } 

    Смотря что ты имеешь в виду.

    mysql_result возвращает FALSE при сбое, что произойдет, если вы указали недействительный (строка, поле). Чтобы проверить это, вы хотите использовать оператор идентичности === , который проверяет как значение, так и тип. Оператор равенства == , функция empty() и условная оценка оператора if проверяют значение, но не тип.

    Это означает, что с использованием одного из этих методов нет разницы между различными значениями, которые все равны Boolean FALSE , например, пустые строки, пустые массивы, строка '0' и значение NULL .

    Поэтому, если вы хотите быть очень основательно, вы можете сделать что-то вроде следующего:

     if ($description === FALSE) { throw new Exception("The row $i was out of range in query $query."); } else if ($description === NULL) { // assuming that the description field has a default value of NULL // * this one I'm not sure about.. the documentation for mysql_result claims // that it returns a string, so this may never happen. // It's left as an exercise for the reader. throw new Exception("Uninitialized value in result row $i of db query $query"); } else if ($description === '') { echo "No description available"; } else { echo $description; } 

    Поскольку empty() возвращает true при аналогичном наборе условий в равенство ( == ) с FALSE , это более строгое в вашей проверке типа было бы особенно важно в тех случаях, когда результатом может быть "0" .

    По-видимому, мне не разрешено размещать более одной гиперссылки, поэтому я не смог ссылаться на документацию для операторов сравнения (« http://php.net/manual/en/language.operators.comparison.php ») или пустую функцию (« http://php.net/empty »). К счастью, их безопасность относительно слаба. Mhuh Hah!

    Используйте функцию mysql_affected_rows :

     $qtd = mysql_affected_rows($result);