if ($ausgabe['kat']==1) Abfrage in SELECT integrieren
Kunzi
- datenbank
ich frage im Augenblick so meine mysql Datenbank ab:
$sql = "select id,nr,name,kat FROM duma";
Bei der Ausgabe in einer while Schleife, frage ich da noch mit
if ($ausgabe['kat']==1) $ausgabe['kat']='Stadt';
elseif($ausgabe['kat']==2) $ausgabe['kat']='Stadtteil';
etc...
.......................... 1 - Stadt 2 - Stadtteil 3 - Ort 4 - Markt 5 - Gemeinde 6 - Weiler
...........................
ab bevor ich diese entdlich ausgebe.
Kann ich meine "if, elseif"
Abfrage nicht schon in meine SELCT Abfrage packen.
Danke, wenn sich mir einer erbarmt und weiterhilft!
Kunzi
Hallo,
ich frage im Augenblick so meine mysql Datenbank ab:
$sql = "select id,nr,name,kat FROM duma";
Bei der Ausgabe in einer while Schleife, frage ich da noch mit
if ($ausgabe['kat']==1) $ausgabe['kat']='Stadt';
> elseif($ausgabe['kat']==2) $ausgabe['kat']='Stadtteil';
etc...
.......................... 1 - Stadt 2 - Stadtteil 3 - Ort 4 - Markt 5 - Gemeinde 6 - Weiler
...........................
ab bevor ich diese entdlich ausgebe. Kann ich meine
"if, elseif"
Abfrage nicht schon in meine SELCT Abfrage packen.
Im Prinzip ja. Das Zauberwort heißt JOIN. Du legst eine zweite Tabelle an, die nur die zwei Spalten 'kat' und 'klartext' hat, und füllst sie mit genau den sechs Paaren, die du oben aufgezählt hast.
Bevor ich mich aber jetzt wieder ins mySQL-Handbuch stürze und im Eifer des Gefechts was Falsches verzapfe, soll bitte jemand anders den JOINt erklären, der damit vertrauter ist. Mein SQL-Wissen ist nämlich Stückwerk.
Ciao, Martin
Tach!
Kann ich meine
"if, elseif"
Abfrage nicht schon in meine SELCT Abfrage packen. Im Prinzip ja. Das Zauberwort heißt JOIN. [...] Bevor ich mich aber jetzt wieder ins mySQL-Handbuch stürze und im Eifer des Gefechts was Falsches verzapfe, soll bitte jemand anders den JOINt erklären, der damit vertrauter ist. Mein SQL-Wissen ist nämlich Stückwerk.
Ich mach das nicht, das kann unser Wiki: Einführung in Joins
Stattdessen bringe ich die Funktion ELT() ins Spiel. Die hat zwar den Nachteil, dass man bei einer Änderung den Code statt Daten ändern muss, dafür ist die Aufgabe jedoch sehr schnell erledigt.
dedlfix.
Moin
Stattdessen bringe ich die Funktion ELT() ins Spiel. Die hat zwar den Nachteil, dass man bei einer Änderung den Code statt Daten ändern muss, dafür ist die Aufgabe jedoch sehr schnell erledigt.
Oh... man lernt nie aus... eine weitere Möglichkeit... Hab ich persönlich noch nie gebraucht...
Gruß Bobby
Moin
Hallo,
ich frage im Augenblick so meine mysql Datenbank ab:
$sql = "select id,nr,name,kat FROM duma";
Bei der Ausgabe in einer while Schleife, frage ich da noch mit
if ($ausgabe['kat']==1) $ausgabe['kat']='Stadt';
> > elseif($ausgabe['kat']==2) $ausgabe['kat']='Stadtteil';
etc...
.......................... 1 - Stadt 2 - Stadtteil 3 - Ort 4 - Markt 5 - Gemeinde 6 - Weiler
...........................
ab bevor ich diese entdlich ausgebe. Kann ich meine
"if, elseif"
Abfrage nicht schon in meine SELCT Abfrage packen.Im Prinzip ja. Das Zauberwort heißt JOIN. Du legst eine zweite Tabelle an, die nur die zwei Spalten 'kat' und 'klartext' hat, und füllst sie mit genau den sechs Paaren, die du oben aufgezählt hast.
Eine Möglichkeit... es geht aber auch anders... Im MySQL kann man mit CASE arbeiten oder IF arbeiten....
z.B.:
SELECT id,nr,name,CASE kat
WHEN 1 THEN 'Stadt'
WHEN 2 THEN 'Stadtteil'
WHEN 3 THEN 'Ort'
WHEN 4 THEN 'Markt'
WHEN 5 THEN 'Gemeinde'
WHEN 6 THEN 'Weiler'
ELSE 'unbekannt'
END kat FROM duma
Besser ist natürlich die Namen der Kategorien in eine eigene Tabelle zu bringen und dann via Kreuzprodukt oder eben auch JOIN zusammen zu bringen angenommen deine Tabelle für die Kategorien heißt 'kategorie' und hat die Felder id und name. Dann könntes so aussehen:
SELECT duma.id, nr, name, duma.kat, kategorie.name
FROM duma, kategorie WHERE katategorie.id = duma.kat
Gruß Bobby
Hallo
Als Ergänzung:
ich frage im Augenblick so meine mysql Datenbank ab:
$sql = "select id,nr,name,kat FROM duma";
Bei der Ausgabe in einer while Schleife, frage ich da noch mit
if ($ausgabe['kat']==1) $ausgabe['kat']='Stadt';
> > > elseif($ausgabe['kat']==2) $ausgabe['kat']='Stadtteil';
etc...
.......................... 1 - Stadt 2 - Stadtteil 3 - Ort 4 - Markt 5 - Gemeinde 6 - Weiler
...........................
ab bevor ich diese entdlich ausgebe.
Wenn die obige Liste mehr oder minder feststehend ist, lässt sich die angebotene Lösung mit einem JOIN noch bequemer bzw. leserlicher handhaben, wenn man diesen nicht live bei der Abfrage durchführt, sondern in einem View.
Dazu würde ich den Namen der Gemeindestruktur als zusätzliches Feld neben die dazugehörige ID in die Sicht, die ansonsten der Tabelle der Orte entspricht, packen.
Als virtuelle Tabelle ist der View stets vorhanden und die durchzuführende Abfrage ist flach und damit leserlicher, da sie nur diese eine (virtuelle) Tabelle abfragt. Zudem muss eine Änderung an der Struktur, so sie denn notwendig wird, nur an einer Stelle erfolgen. Das macht sich besonders dann bezahlt, wenn ein gleichartiger Zugriff auf die Daten von mehreren Stellen aus erfolgen soll.
Tschö, Auge