Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите с сложным запросом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Proxyr
Отправлено: 10 Июня, 2009 - 09:50:22
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Задача такая, надо посчитать кол-во записей новостей, в которых ид-категории по списку из другой таблицы категорий, а категории в свою очередь тоже надо отобрать по условию..
И если выбранных записей в таблице новостей больше определённого количества (заранее установленного, например 10000) то лишнее удалить отсортировав по дате. Вот такая вот бредятина Ха-ха
Пока дошел только до подсчета новостей, вот такой запрос сварганил но он почему то не работает:

CODE (text):
скопировать код в буфер обмена
  1. $result2 = mysql_query("select count(p.*), c.id, c.alt_name from `" . PREFIX . "_post` as p LEFT JOIN  ".PREFIX."_category AS с ON (p.category=c.id) WHERE c.alt_name IN ('russia', 'ukraine', 'oddly') group by p.category");


где:
" . PREFIX . "_post (таблица с новостями)
".PREFIX."_category (таблица категорий новостей)
p.category=c.id (категория в новостях = ид из таблицы категорий)
c.alt_name IN (если в таблице категорий alt_name = список)
 
 Top
Stierus Супермодератор
Отправлено: 10 Июня, 2009 - 09:52:43
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Если вы просите помочь с запросом - выкладывать нужно тоже запрос, а не код, который его генерирует ...
 
My status
 Top
Proxyr
Отправлено: 10 Июня, 2009 - 10:11:15
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




да запроса как такового и нет, просто не работает вот эта писанина.

даже если просто вставить (пример под CMS-DLE):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //      ini_set('display_errors', 1); //*
  4. //      error_reporting(E_ALL);
  5. define("DATALIFEENGINE", "1");
  6. include ("./engine/classes/mysql.class.php");
  7. include ("./engine/data/dbconfig.php");
  8. include ("./engine/data/config.php");
  9. mysql_connect(DBHOST, DBUSER, DBPASS);
  10. mysql_query("/*!40101 SET NAMES 'cp1251' */");
  11.  
  12. // Соединение с MySQL. Используем данные указанные в настройках вашего DLE.
  13. if (!mysql_select_db(DBNAME)){
  14.     $host = "localhost";
  15.     $user = "username";
  16.     $pass = "password";
  17.     $dbname = "DB_name";
  18.                 mysql_connect($host, $user, $pass);
  19.         echo mysql_error();
  20.         mysql_query("/*!40101 SET NAMES 'cp1251' */");
  21.         mysql_select_db($dbname);
  22. }
  23.  
  24. $result2 = mysql_query("select count(p.*), c.id, c.alt_name from `" . PREFIX . "_post` as p LEFT JOIN ".PREFIX."_category AS с ON (p.category=c.id) WHERE c.alt_name IN ('russia', 'ukraine', 'oddly') group by p.category");
  25.  
  26. print_r($result2);
  27.  
  28.  
  29. ?>
  30.  

(Отредактировано автором: 10 Июня, 2009 - 10:14:58)

 
 Top
Stierus Супермодератор
Отправлено: 10 Июня, 2009 - 10:18:59
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




это и не должно ничего хорошего выводить ... http://ru.php.net/manual/ru/func....mysql-query.php почитай, что возвращает mysql_query.
 
My status
 Top
manchvi
Отправлено: 10 Июня, 2009 - 23:16:22
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Proxyr пишет:
Задача такая, надо посчитать кол-во записей новостей, в которых ид-категории по списку из другой таблицы категорий, а категории в свою очередь тоже надо отобрать по условию..
И если выбранных записей в таблице новостей больше определённого количества (заранее установленного, например 10000) то лишнее удалить отсортировав по дате. Вот такая вот бредятина Ха-ха
Пока дошел только до подсчета новостей, вот такой запрос сварганил но он почему то не работает:

CODE (text):
скопировать код в буфер обмена
  1. $result2 = mysql_query("select count(p.*), c.id, c.alt_name from `" . PREFIX . "_post` as p LEFT JOIN  ".PREFIX."_category AS с ON (p.category=c.id) WHERE c.alt_name IN ('russia', 'ukraine', 'oddly') group by p.category");


где:
" . PREFIX . "_post (таблица с новостями)
".PREFIX."_category (таблица категорий новостей)
p.category=c.id (категория в новостях = ид из таблицы категорий)
c.alt_name IN (если в таблице категорий alt_name = список)



mysql_query -- Посылает запрос MySQL
mysql_result -- Возвращает данные результата запроса
mysql_fetch_row -- Орабатывает ряд результата запроса и возвращает неассоциативный массив.
mysql_fetch_array -- Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.
Это не полни список функции остальное можешь наитии здесь http://php.su/functions/?cat=mysql
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB