[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос к двум таблицам
MadMike
Помогите сделать запрос.

У меня есть две таблицы:
В одной - h1vu5_comprofiler есть столбец "cb_actions" в котором хранятся названия материалов отмеченных пользователем.
Вторая таблица - материалы - h1vu5_content.

Мне нужно вывести те материалы у которых значение title совпадают со значениями первой таблицы столбца cb_actions .
Короче вывести материалы выбранные пользователем в поле cb_actions...

Пробовал вот так :
SELECT * 
FROM h1vu5_content,h1vu5_comprofiler
WHERE h1vu5_content.title LIKE h1vu5_comprofiler.cb_actions

Работает но ничего не выводит



Спустя 35 минут, 10 секунд (26.09.2012 - 21:03) Alex_msk написал(а):

SELECT *
FROM h1vu5_content,h1vu5_comprofiler
WHERE h1vu5_comprofiler.cb_actions = h1vu5_content.title

Спустя 9 часов, 5 минут, 5 секунд (27.09.2012 - 06:08) MadMike написал(а):
блин не выводит тоже ничего..как так(

Спустя 11 часов, 43 минуты, 35 секунд (27.09.2012 - 17:52) MadMike написал(а):
В общем вот к чему я пришел и застрял!

$query2 = $db->getQuery(true);
$query2->select('cb_actions');
$query2->from('#__comprofiler');
$query2->where("user_id = {$userid}");
$db->setQuery($query2);
$cb_actions = $db->loadResult();
$cb_actions = explode('|*|', $cb_actions);
//разбили на массив строк, получили титлы мероприятий пользователя


//-----------запрос №3---------------//
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__content');
$query->where('catid = 8');
//вывел титлы всех мероприятий


Титлы типо такого: КОНКУРС УЧЕНИЧЕСКИХ РАБОТ «ЛАБИРИНТЫ ЗНАНИЙ»

Вот теперь как сравнить их адекватно чтобы вывести с таблицы материалов титлы только тех которые в др таблице имеются?

Спустя 1 час, 21 минута, 8 секунд (27.09.2012 - 19:13) inpost написал(а):
Разбей запросы. Сначала запрос к первой таблице, получи массив тайтлов, которые нужны.
Далее выборка из второй: WHERE `title` IN ('a1','a2') и т.д.

Спустя 11 часов, 21 минута, 16 секунд (28.09.2012 - 06:34) MadMike написал(а):
материалы в столбце cb_actions хранятся в таком виде:
титл 1 |*| титл2 |*| титл3

я сделал из них массив:
Array ( [0] => КОНКУРС «РАДУГА ПРОЕКТОВ» ДЛЯ ДОШКОЛЬНИКОВ И МЛАДШИХ ШКОЛЬНИКОВ )
Array([1] ...) и т.п.

Я не могу понять как теперь титлы из таблицы контента сравнить с этими элементами массива и вывести совпадающие.

Мне нужны титлы контента.

Спустя 38 минут, 38 секунд (28.09.2012 - 07:13) MadMike написал(а):
Вот так может?


for ($i=0; $i < count($cb_actions); $i++) 
{
$action = $cb_actions[$i];
$query->where("title LIKE %{$action}%");
}

Только не работает чот((

Спустя 5 часов, 9 минут, 56 секунд (28.09.2012 - 12:23) inpost написал(а):
$array = array_map("mysql_real_escape_string",$array);
mysql_query("
SELECT *
FROM `таблицы контента`
WHERE `титлы` IN ('"
.implode("','",$array)."')
"
) or die(mysql_error());


_____________
Мы не знаем что это такое, если бы мы знали что это такое, мы не знаем что это такое!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.