Database selectie vraag

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am

Database selectie vraag

Post by Gregor »

Hallo,

Ik probeer artikelen te selecteren die tot een bepaalde categorie behoren, echter de verbinding tussen het artikel en de categorie is in een aparte tabel gedaan.

Tabel CGBlog `cms_module_cgblog`
`cgblog_id`, `cgblog_title`, `cgblog_data`, `cgblog_date`, `summary`, `start_time`, `end_time`, `status`, `create_date`, `modified_date`, `author`, `cgblog_extra`, `url`
Tabel CGBllog <-> Category `cms_module_cgblog_blog_categories`
`blog_id`, `category_id`
Het selectstatement voor het selecteren van het vorige en volgende artikel binnen dezelfde categorie:
// get all CGBlog articles sorted by ascending date
$query_next = "SELECT cgblog_id, cgblog_title FROM ".cms_db_prefix()."module_cgblog WHERE cgblog_date > ? AND status = 'published' AND (end_time >= CURRENT_DATE OR end_time IS NULL) AND cgblog_id IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories) ORDER BY cgblog_date ASC LIMIT 1";

// INNER JOIN ".cms_db_prefix()."module_cgblog_blog_categories ON cgblog_id = blog_id
// AND cgblog_id IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories)

$query_prev = "SELECT cgblog_id, cgblog_title FROM ".cms_db_prefix()."module_cgblog WHERE cgblog_date < ? AND status = 'published' AND (end_time >= CURRENT_DATE OR end_time IS NULL) AND cgblog_id IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories) ORDER BY cgblog_date DESC LIMIT 1";

// AND cgblog_id IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories)
// INNER JOIN ".cms_db_prefix()."module_cgblog_blog_categories ON cgblog_id = blog_id
In de commentaarregels bij het select-statement staan de opties die k heb geprobeerd, maar helaas zonder resultaat.

Ik ben bijv. ook nieuwsgierig wat nu het resultaat is van de query, maar ik weet het commando voor het weergeven van een array niet :-\

Wie kan me op weg helpen om dit werkend te krijgen?

Thanks, Gregor
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am

Re: Database selectie vraag

Post by Gregor »

De code zou volgens mij als volgt moeten zijn:

Code: Select all

// get all CGBlog articles sorted by ascending date (NEXT)
$query_next = "SELECT cgblog_id, cgblog_title 
FROM ".cms_db_prefix()."module_cgblog 
WHERE cgblog_date > ?
AND status = 'published'
AND (end_time >= CURRENT_DATE OR end_time IS NULL) 
AND cgblog_id 
IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories) 
ORDER BY cgblog_date 
ASC LIMIT 1";

// get all CGBlog articles sorted by ascending date (PREV)
$query_prev = "SELECT cgblog_id, cgblog_title 
FROM ".cms_db_prefix()."module_cgblog 
WHERE cgblog_date < ?
AND status = 'published'
AND (end_time >= CURRENT_DATE OR end_time IS NULL) 
AND cgblog_id 
IN (SELECT blog_id FROM ".cms_db_prefix()."module_cgblog_blog_categories) 
ORDER BY cgblog_date 
ASC LIMIT 1";
Op deze link is bijna onderaan de pagina (Vorig | Volgend --> ontbreekt) te zien dat het niet naar behoren werkt:
http://www.uisge-beatha.eu/logboek/272/ ... nzelf.html
Het volgende / vorige bericht zou ook in de categorie 'Hardlopen' moeten zijn, echter het geeft een bericht terug in de categorie 'Zeilen'.

Bij http://www.uisge-beatha.eu/logboek/255/ ... steek.html wijst 'Volgend' naar het allereerste bericht en 'Vorig' wijst wel naar het juiste bericht.

Iemand die kan helpen om dit stukje ook werkend te krijgen?

Gregor
Post Reply

Return to “Dutch - Nederlands”