Собственно скр5естили КАЛЕНДАРЬ от утконоса и инстант мапы. Т.е теперь в календаре выводятся события инстантмапы. Но теперь не знаю как вывести родные события календаря.
как делать запрос сразу в две таблицы?
#1
8 июля 2012 в 21:51
#2
8 июля 2012 в 22:15
LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров
#3
9 июля 2012 в 06:34
LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров
ну это смотря что им надо из таблиц выдернуть!
Но даже если в них (в таблицах) какая-то совсем не связанная информация,
то, честное слово, никто не запрещает сделать два запроса подряд
))
Сегодня в 23:55
#4
9 июля 2012 в 07:03
я ни чего не говорю против нескольких запросов, я даже сам когда времени нет, делаю так, но правильней, делать не так… один хрен одним запросом вынимать только одно не кашерно если таблиц 2, сам понимаешь…
#5
9 июля 2012 в 08:11
я тоже за красоту, поэтому
)))LEFT JOIN, RIGHT JOIN, в нете полно подробных обьяснений и примеров
запрос формируется в model.php?)
тогда у меня такой сейчас, выводит в афише события из мапсы. вот хотелось бы теперь еще вывести события из самой афиши, которые могут добавлять пользователи.
а в оригинале выборка идет из вот хочется вывести из обеих таблиц
тогда у меня такой сейчас, выводит в афише события из мапсы. вот хотелось бы теперь еще вывести события из самой афиши, которые могут добавлять пользователи.
function getCalendar() { $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"); if(!$sql) { return false; } else { return $sql; } }
$sql = $this->inDB->query("SELECT * FROM cms_events");
#8
9 июля 2012 в 22:03
Надо данные из этих двух запросов сложить одну кучу? У них структура одинаковая?
#9
9 июля 2012 в 22:16
структура второй
CREATE TABLE IF NOT EXISTS `cms_events` ( `id` int(11) NOT NULL AUTO_INCREMENT, `author_id` int(11) NOT NULL, `type` varchar(128) NOT NULL, `apx` varchar(128) NOT NULL, `start_time` int(11) NOT NULL, `end_time` int(11) NOT NULL, `title` varchar(128) NOT NULL, `content` longtext NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ; -- v 0.1.0 INSERT INTO cms_comment_targets (target, component, title) VALUES ('calendar', 'calendar', 'Календарь'); -- v 0.2.0 CREATE TABLE IF NOT EXISTS `cms_events_signup` ( `event_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin;
#10
10 июля 2012 в 08:04
Давайте файл, в котором вызываются эти функции, я сведу результат в один массив
#11
10 июля 2012 в 09:38
а какой файл за это отвечает в движке?)
Вот файл вью instantcms.ru/users/files/download2289.html
model.php который сейчас выводит данные: instantcms.ru/users/files/download2290.html
model.php который сейчас выводит данные: instantcms.ru/users/files/download2290.html
#13
10 июля 2012 в 10:39
model.php это файл. в котором функции прописаны (что мы и видим)
а нужен файл, из которого к этим функциям идёт обращение. Ну frontend.php как правило :)
ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ:
Логика такая: frontend.php обращается в model.php к функциям, чтобы (в нашем случае) получить данные из БД
Получив их, он может произвести с ними любые действия а потом отправить в ???????.tpl чтобы показать результат пользователю.
Сейчас задача — получить из model.php два пакета данных, объединить их в один.
Поэтому мне и нужно "видеть" где эти данные получаются
а нужен файл, из которого к этим функциям идёт обращение. Ну frontend.php как правило :)
ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ:
Логика такая: frontend.php обращается в model.php к функциям, чтобы (в нашем случае) получить данные из БД
Получив их, он может произвести с ними любые действия а потом отправить в ???????.tpl чтобы показать результат пользователю.
Сейчас задача — получить из model.php два пакета данных, объединить их в один.
Поэтому мне и нужно "видеть" где эти данные получаются
#14
10 июля 2012 в 10:45
#15
10 июля 2012 в 12:03
в 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 .= "},
";
}
//----------------------------------------
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 .= "},
";
}
//----------------------------------------