Представим, Вам нужно, перед добавлением какой-то информации в базу (допустим, Вы хотите добавить новую категорию) проверить, существует ли такая категория в базе (имеется в виду имя категории).
Большинство людей (в том числе и я, когда начинал изучать PHP) делают нечто похожее на это:
1 2 3 4 5 6 7 8 9 10 11 |
$result = mysql_query("SELECT name FROM categories WHERE name='наша_категория'") or die(mysql_error()); $cat = mysql_fetch_array($result); if (!cat)/(!isset $cat[0]) { Здесь добавляем категорию } else { print("Категория с таким именем существует!"); } |
И начинают мучатся: почему не работает и т.д. Но решение простое, это — mysql_num_rows();
Использование:
1 2 3 4 5 6 7 8 9 10 |
$result = mysql_query("SELECT name FROM categories WHERE name='наша_категория'") or die(mysql_error()); if (mysql_num_rows($result) > 0) { Здесь добавляем категорию } else { print("Категория с таким именем существует!"); } |
Функция mysql_num_rows возвращает количество рядов результата запроса, т.е. если по выше указанному запросу найдется одна категория, то mysql_num_rows будет содержать 1, а если ничего нет — 0.
так лучше проверять, нагрузки меньше
$result = mysql_fetch_array(mysql_query(«select count(*) from table where name=’name'»));
if($result[‘count(*)’])
{
Здесь добавляем категорию
}
else
{
print(«Категория с таким именем существует!»);
}
Ну, так здесь же описывается использование именно функции «mysql_num_rows». Да и какая там нагрузка 🙂