X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите объединить 2 запроса...
mangal
mangal
Topic Starter сообщение 21.12.2011, 16:38; Ответить: mangal
Сообщение #1


Частый гость
**

Группа: User
Сообщений: 59
Регистрация: 12.12.2011
Поблагодарили: 0 раз
Репутация:   0  


Здравствуйте помогите пожалуйста объединить 2 запроса...
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_week' - INTERVAL 1 WEEK AND date < '$this_week' ORDER BY news_read DESC, comm_num DESC LIMIT 0,50" );

и

$db->query( "SELECT id, name, onserver, dcount FROM " . PREFIX . "_files WHERE news_id='{$row['id']}'" );
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 21.12.2011, 20:12; Ответить: Electric
Сообщение #2


CMS help/antivirus
******

Группа: Active User
Сообщений: 1532
Регистрация: 27.12.2009
Из: Єдина Україна
Поблагодарили: 389 раз
Репутация:   57  


По идеи так:
$db->query( "SELECT " . PREFIX . "_post.id, " . PREFIX . "_post.title, " . PREFIX . "_post.date, " . PREFIX . "_post.alt_name, " . PREFIX . "_post.category, " . PREFIX . "_post.flag, " . PREFIX . "_files.id, " . PREFIX . "_files.name, " . PREFIX . "_files.onserver, " . PREFIX . "_files.dcount  FROM " . PREFIX . "_post, " . PREFIX . "_files WHERE ( " . PREFIX . "_post.approve='1' AND " . PREFIX . "_post.date >= '$this_week' - INTERVAL 1 WEEK AND " . PREFIX . "_post.date < '$this_week' AND " . PREFIX . "_files.news_id='{$row['id']}' ) ORDER BY " . PREFIX . "_post.news_read DESC, " . PREFIX . "_post.comm_num DESC LIMIT 0,50
" );

Проверяйте...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 21.12.2011, 20:28; Ответить: x64
Сообщение #3


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3544
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2881 раз
Репутация:   294  


объединением занимается оператор UNION
при этом нужно учесть, что оба селекта должны возвращать одинаковое количество рядов (не строк!) одинакового типа
чтобы понятнее было:
SELECT field1, field2, field2 FROM table1
UNION
SELECT field4, field5, field6 FROM table2


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mangal
mangal
Topic Starter сообщение 21.12.2011, 22:28; Ответить: mangal
Сообщение #4


Частый гость
**

Группа: User
Сообщений: 59
Регистрация: 12.12.2011
Поблагодарили: 0 раз
Репутация:   0  


Electric не помогло... нечего не выводит

х64 как надо делать можете сделать???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
misha111
misha111
сообщение 22.12.2011, 18:14; Ответить: misha111
Сообщение #5


Частый гость
**


Группа: User
Сообщений: 95
Регистрация: 15.3.2009
Поблагодарили: 4 раза
Репутация:   -2  


(mangal @ 21.12.2011, 16:38) *
Здравствуйте помогите пожалуйста объединить 2 запроса...
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_week' - INTERVAL 1 WEEK AND date < '$this_week' ORDER BY news_read DESC, comm_num DESC LIMIT 0,50" );

и

$db->query( "SELECT id, name, onserver, dcount FROM " . PREFIX . "_files WHERE news_id='{$row['id']}'" );


Что значит объеденить? - есть оператор (left, right, inner) join если вы хотите насадить одну таблицу на другую.
Но тут непонятно, как вы делаете связки. news_id второй таблици совпадает с id первой?

если да, то можно будет on (A.id=B.news_id)

Вообще вы крайне плохо пишите sql в такой форме, крайне уязвимо для иньекции, навряд вы там выше по коду делаете проверку. Да и плохо читается. Написав в таком виде на форуме явно говорите - "поломайте меня пожалуйста". Надо сначало делать prepare, а потом execute. А до входа проконтролировать содержимое переменных.
К примеру $row['id'] может быть только число, ограниченное сверху и снизу.

Ещё по sql, там есть оператор between - он сократит длинну вашего запроса.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал misha111 - 22.12.2011, 18:23


--------------------
ввод вывод обмен webmoney paypal www.exchanger.biz.ua
покупка itunes gift card
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Помогите, пожалуйста, моей дочери выжить!
благотворительный топик
30 vitvirtual 3769 19.5.2018, 8:30
автор: vitvirtual
Открытая тема (нет новых ответов) Продвигаю страницу по запросу "Как сделать игру". Помогите советом, пожалуйста
Я секу в теме! Но подать статью угодным поисковикам образом не смо
22 coremission 2169 8.5.2018, 12:33
автор: coremission
Открытая тема (нет новых ответов) Помогите с выбором ноута
20 rokot 897 23.4.2018, 12:09
автор: Room
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыПомогите с идеями для форума про успех
Спасибо за каждую идею
43 Zoya83 5136 12.4.2018, 11:42
автор: Zoya83
Открытая тема (нет новых ответов) Лендинг или сайт-визитка для ИП? Помогите определиться
6 Yas18 1133 31.3.2018, 20:57
автор: Yas18


 



RSS Текстовая версия Сейчас: 23.5.2018, 19:11
Дизайн