Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Статус
В этой теме нельзя размещать новые ответы.

maxim nestoff

Создатель
Регистрация
23 Апр 2009
Сообщения
185
Реакции
15
Друзья, помогите понять где ошибка: Warning: mysql_num_rows(:( supplied argument is not a valid MySQL result resource in /usr/local/www/.../mp3/last.php on line 8
Вот та самая строка 8 из last.php: $rnum = mysql_num_rows($top_sql);
Пару дней назад лежал сервер Mysql, может админы что изменили в mysql.
Вот сам файл:
 

Вложения

  • last.php.rar
    923 байт · Просмотры: 8
Напиши перед строкой


PHP:
$rnum = mysql_num_rows($top_sql);

строчку
PHP:
echo('['.mysql_errno().'] ['.mysql_error().']');
exit;

Так ты увидишь, почему запрос не выполняется. Выложи показанную ошибку, а там уже будем думать, что не так.
 
  • Заблокирован
  • #3
видимо проблема в этом запросе

(SELECT * FROM search_list ORDER BY count DESC LIMIT 10) UNION ALL (SELECT * FROM search_list ORDER BY date DESC LIMIT 10) UNION ALL (SELECT * FROM search_list ORDER BY rand() LIMIT 1)

забейте в пхпмайадмин и посмотрите что вернет. скорее всего чего то не хватает в базе
 
Напиши перед строкой
PHP:
$rnum = mysql_num_rows($top_sql);
строчку
PHP:
echo('['.mysql_errno().'] ['.mysql_error().']');
exit;
Так ты увидишь, почему запрос не выполняется. Выложи показанную ошибку, а там уже будем думать, что не так.
Написало:
PHP:
[5] [Out of memory (Needed 1047264 bytes)]
Juri, я никак не могу вспомнить как входить на phpmyadmin. Админы там что-то меня уже давно и я забыл ссылку на вход:(. Может есть что-то типа phpinfo чтоб узнать адресс входа в phpmyadmin?
 
Эта ошибка возникает, когда базе не хватает памяти для вывода всех данных запроса. Советов тут немного:
1) переписать запрос.
2) Разбить такой большой запрос на несколько мелких.
3) задать конфигурацию базы таким образом, чтобы он пережевала такой запрос.


От себя рекомендую 1 или 2 пункт, т.к. запрос реально кривой.
Ну а по 3 пункту, можно поигратся со значениями max_allowed_packet(например поставить max_allowed_packet=2MB) или попробывать опцию --quick
 
tostrss, подскажите, пожалуйста, как переписать запрос?
 
Все зависит от того, какой тип базы там используется, какое кол-во записей там есть, как часто обновляются данные, возможность кеширования и самое главное, что этот запрос должен делать.
 
У вас на один запрос уходит более 1 Мб памяти, вы уверены что сервер просто напросто не загнулся от ваших запросов. Тут необходимо проанализировать параметры сервера и, возможно, перейти на более быстроходный. Либо вообще перейти на другой движок
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху