Можно ли выводить данные из двух разных таблиц?

 
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
Собственно скр5естили КАЛЕНДАРЬ от утконоса и инстант мапы. Т.е теперь в календаре выводятся события инстантмапы. Но теперь не знаю как вывести родные события календаря.

как делать запрос сразу в две таблицы?
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
Максим Шорин:
LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров

ну это смотря что им надо из таблиц выдернуть!
Но даже если в них (в таблицах) какая-то совсем не связанная информация,
то, честное слово, никто не запрещает сделать два запроса подряд
))
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 330
я ни чего не говорю против нескольких запросов, я даже сам когда времени нет, делаю так, но правильней, делать не так... один хрен одним запросом вынимать только одно не кашерно если таблиц 2, сам понимаешь...
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
я тоже за красоту, поэтому
Максим Шорин:
LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров
)))
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 381
если подойдет
вот есть решение .
кстати тоже для Мапса делал )

но скорее всего у вас другое ..
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
запрос формируется в model.php?)

тогда у меня такой сейчас, выводит в афише события из мапсы. вот хотелось бы теперь еще вывести события из самой афиши, которые могут добавлять пользователи.
Код PHP:
  1.  
  2. function getCalendar()
  3. {
  4. $sql = $this->inDB->query("SELECT id,user_id as author_id, date_start as start_time,date_end as end_time,title FROM cms_map_events");
  5.  
  6.  
  7. if(!$sql)
  8. {
  9. return false;
  10. }
  11. else
  12. {
  13. return $sql;
  14. }
  15. }
  16.  
а в оригинале выборка идет из
Код PHP:
  1. $sql = $this->inDB->query("SELECT * FROM cms_events");
вот хочется вывести из обеих таблиц
Редактировалось: 1 раз (Последний: 9 июля 2012 в 21:46)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
Надо данные из этих двух запросов сложить одну кучу? У них структура одинаковая?
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
структура второй

Код PHP:
  1. CREATE TABLE IF NOT EXISTS `cms_events` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `author_id` int(11) NOT NULL,
  4. `type` varchar(128) NOT NULL,
  5. `apx` varchar(128) NOT NULL,
  6. `start_time` int(11) NOT NULL,
  7. `end_time` int(11) NOT NULL,
  8. `title` varchar(128) NOT NULL,
  9. `content` longtext NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;
  12. -- v 0.1.0
  13. INSERT INTO cms_comment_targets (target, component, title)
  14. VALUES ('calendar', 'calendar', 'Календарь');
  15. -- v 0.2.0
  16. CREATE TABLE IF NOT EXISTS `cms_events_signup` (
  17. `event_id` int(11) NOT NULL,
  18. `user_id` int(11) NOT NULL,
  19. `time` int(11) NOT NULL
  20. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin;
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
Давайте файл, в котором вызываются эти функции, я сведу результат в один массив
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
а какой файл за это отвечает в движке?)
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
Вот файл вью http://instantcms.ru/users/files/download2289.html

model.php который сейчас выводит данные: http://instantcms.ru/users/files/download2290.html
Редактировалось: 1 раз (Последний: 10 июля 2012 в 10:13)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
model.php это файл. в котором функции прописаны (что мы и видим)
а нужен файл, из которого к этим функциям идёт обращение. Ну frontend.php как правило :)

ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ:
Логика такая: frontend.php обращается в model.php к функциям, чтобы (в нашем случае) получить данные из БД
Получив их, он может произвести с ними любые действия а потом отправить в ???????.tpl чтобы показать результат пользователю.
Сейчас задача - получить из model.php два пакета данных, объединить их в один.
Поэтому мне и нужно "видеть" где эти данные получаются
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2776
вот и он) http://instantcms.ru/users/files/download2291.html
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
в model.php добавляем:

function getEvents(){
$sql = $this->inDB->query("SELECT id, author_id, start_time, end_time, title FROM cms_events");
if(!$sql){return false;}else{return $sql;}
}
воткнуть можно хоть куда, я поставил со стр 95 - для красоты

во фронтенд, со стр 108 ( то есть ПЕРЕД if($inUser->id == 0) )
ДОБАВЛЯЕМ:
//------прицепляем вторую таблицу---------
$events = $model->getEvents($inUser->id);
while ($data = mysql_fetch_assoc($events))
{
$id = $data["id"];
$author_id = $data["author_id"];
$title = $data["title"];

$starttime = $data["start_time"];
$endtime = $data["end_time"];
$type = $data["type"];

$start_time = strtotime($starttime);
$end_time = strtotime($endtime);

$starttime = $start_time;
$endtime = $end_time;

$events_string .= "{
title : '".str_replace("'",'"',$title)."',
start : '".date("Y-m-d H:i:s", $starttime)."',
end : '".date("Y-m-d H:i:s", $endtime)."',
url : '/maps/events/".$id.".html',";
if($endtime-$starttime > 60*60*8)
{
$events_string .= "allDay: true,";
}
else
{
$events_string .= "allDay: false,";
}
$events_string .= "color: '#ffc571',\n";
$events_string .= "textColor: '#000000',\n";
$events_string .= "},
";
}
//----------------------------------------
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.