AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL-Abfragen zusammenfassen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfragen zusammenfassen

Ein Thema von Matze · begonnen am 6. Jul 2006 · letzter Beitrag vom 6. Jul 2006
 
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

SQL-Abfragen zusammenfassen

  Alt 6. Jul 2006, 07:07
Datenbank: MySQL • Version: 4 • Zugriff über: PHP
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?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz