Hallo zusammen,
es geht ums Auslesen von Einträgen eines Blogs.
Ich nutze folgende 4
MySQL-Queries in einer PHP-Datei, wobei hierbei nur die ersten 3 relevant sein dürften (seltsam gehighlighted, ich weiß):
Code:
// get blog entry
$sql_query = "[b]SELECT[/b] b.*, bd.*
[b]FROM[/b] " . BLOG_ENTRIES . " b
[b]LEFT JOIN[/b] " . BLOG_ENTRIES_DATA . " bd
[b]ON[/b] b.blog_id = bd.blog_id
[b]WHERE[/b] b.lang = " . sqlval($site_lang['lang_short']) . "
[b]AND[/b] b.blog_id = " . sqlval($id) . "
[b]AND[/b] bd.blog_show = 1";
Code:
// get navigation links
// previous entry
$sql_query = "[b]SELECT[/b] bd.blog_id, b.blog_title
[b]FROM[/b] " . BLOG_ENTRIES . " b
[b]LEFT JOIN[/b] " . BLOG_ENTRIES_DATA . " bd
[b]ON[/b] b.blog_id = bd.blog_id
[b]LEFT JOIN[/b] " . BLOG_CATEGORIES_DATA . " bcd
[b]ON[/b] bd.blog_cat_id = bcd.blog_cat_id
[b]WHERE[/b] b.lang = " . sqlval($site_lang['lang_short']) . "
[b]AND[/b] bcd.blog_cat_show = 1
[b]AND[/b] bd.blog_id > " . $id . "
[b]ORDER BY[/b] bd.blog_id [b]ASC[/b]
[b]LIMIT[/b] 1";
[...]
// next entry
$sql_query = "[b]SELECT[/b] bd.blog_id, b.blog_title
[b]FROM[/b] " . BLOG_ENTRIES . " b
[b]LEFT JOIN[/b] " . BLOG_ENTRIES_DATA . " bd
[b]ON[/b] b.blog_id = bd.blog_id
[b]LEFT JOIN[/b] " . BLOG_CATEGORIES_DATA . " bcd
[b]ON[/b] bd.blog_cat_id = bcd.blog_cat_id
[b]WHERE[/b] b.lang = " . sqlval($site_lang['lang_short']) . "
[b]AND[/b] bcd.blog_cat_show = 1
[b]AND[/b] bd.blog_id < " . $id . "
[b]ORDER BY[/b] bd.blog_id [b]DESC[/b]
[b]LIMIT[/b] 1";
Code:
// get blog_category
$sql_query = "[b]SELECT[/b] bd.*, b.*
[b]FROM[/b] " . BLOG_CATEGORIES . " b
[b]LEFT JOIN[/b] " . BLOG_CATEGORIES_DATA . " bd
[b]ON[/b] b.blog_cat_id = bd.blog_cat_id
[b]WHERE[/b] b.lang = " . sqlval($site_lang['lang_short']) . "
[b]AND[/b] b.blog_cat_id = " . sqlval($blog_entry['blog_cat_id']) . "
[b]AND[/b] bd.blog_cat_show = 1
[b]ORDER BY[/b] bd.blog_cat_id [b]DESC[/b]";
Ich habe schon mit einer Person gesprochen, die sich mit
SQL recht gut auskennt, und da mussten wir leider mit obigen Queries verbleiben, was mit jedoch nicht sonderlich gut gefällt, gerade 2 Abfragen für den nächsten/vorigen Eintrag. Vielleicht kennt ihr eine schönere Möglichkeit.
Die 2 mittleren Abfragen (hier der 2. Code-Block) sind je dafür da, den vorigen und den nächsten Blog-Eintrag samt Titel auszulesen. Mit
UNION konnte ich das nicht zusammenfassen, da es dann Probleme mit
ORDER BY gibt (wieso auch immer). Ganz schön wäre es, wenn man die ersten 3 Abfragen zusammenfassen könnte, natürlich so, dass das noch übersichtlich bleibt.
Ist sowas möglich, wenn ja, wie?