почемуто не работает, выдает ошибку
warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\pets3\WWW\themes\garland\node-XXX.tpl.php on line 43.
хотя если просто убрать mysql_num_rows(): то все работает
про надстройки читайте в тут,
не советовал бы напрямую, не зря же надстройки сделаны.
а с 5-ки был убран метод db_num_rows, там же есть способ как по другому (по мне, так не очень читабельно).
Столкнулась с той же проблемой
warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in .....
и пришлось лезть в поиск.
А проблема скорее всего возникает потому, что на http://api.drupal.ru/api/function/db_affected_rows/6 в описании функции db_affected_rows() дословно указано "Возвращает количество записей, изменённых предыдущим запросом."
Т.е. записей, измененных предыдущим запросом и в своей работе использует функцию РНР mysql_affected_rows(), которая, судя по документации "не работает с SELECT -- только с запросами, модифицирующими таблицу", потому люди и пытаются использовать стандартную для подсчета количествыа записей, возвращаемых запросом, функцию РНР mysql_num_rows(), в том числе и мой ход мыслей был таким.
Почему-то Гибкий уровень абстракции Друпал не предусмотрел нормальной функции для подсчета количества записей в запросе.
Но не смотря на документацию к РНР, mysql_affected_rows() все таки подсчитал записи и в запросе SELECT, что на данный момент видится мне единственным способом, с моей точки зрения, не совсем правильным. Все-таки основные функции работы с базами должны быть реализованы в Друпал.
Комментарии
вроде работает... попробуй:
if ($res) {
if (mysql_num_rows($res) == 0) {
}
}
или в 1 строчку
почемуто не работает, выдает ошибку
warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\pets3\WWW\themes\garland\node-XXX.tpl.php on line 43.
хотя если просто убрать mysql_num_rows(): то все работает
тоесть и с ним работает, только ошибку выдает
да... вроде что-то подобное было. Проще написать еще 1 запрос с COUNT, чем разбираться.
не вариант с запросом не очень ), лучше пока вообще выкину эту проверку пока, хотя и выглядит не очень
Правильнее использовать фунции друпаловского DB-layer http://api.drupal.ru/api/search/6/db_
про надстройки читайте в тут,
не советовал бы напрямую, не зря же надстройки сделаны.
а с 5-ки был убран метод db_num_rows, там же есть способ как по другому (по мне, так не очень читабельно).
ходь два года прошло, но все равно с гугла по запросу druplal mysql_num_rows попал сюда.
Делается так db_affected_rows($result);
Столкнулась с той же проблемой
warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in .....
и пришлось лезть в поиск.
А проблема скорее всего возникает потому, что на http://api.drupal.ru/api/function/db_affected_rows/6 в описании функции db_affected_rows() дословно указано "Возвращает количество записей, изменённых предыдущим запросом."
Т.е. записей, измененных предыдущим запросом и в своей работе использует функцию РНР mysql_affected_rows(), которая, судя по документации "не работает с SELECT -- только с запросами, модифицирующими таблицу", потому люди и пытаются использовать стандартную для подсчета количествыа записей, возвращаемых запросом, функцию РНР mysql_num_rows(), в том числе и мой ход мыслей был таким.
Почему-то Гибкий уровень абстракции Друпал не предусмотрел нормальной функции для подсчета количества записей в запросе.
Но не смотря на документацию к РНР, mysql_affected_rows() все таки подсчитал записи и в запросе SELECT, что на данный момент видится мне единственным способом, с моей точки зрения, не совсем правильным. Все-таки основные функции работы с базами должны быть реализованы в Друпал.