Untergruppen mit Hilfe der Datenbank anzeigen
Ralf
- datenbank
0 Cheatah0 romy0 Frank aus Ulm
Moinsn Leute!
Hab da ein kleines Problem:
Und zwar programmiere ich zur Zeit eine Datenbank in der alle Informationen zu Arztpraxen in unserer Region stehen. Man kann mit einem Select Menu seine Suchkriterien eingeben und die datenbank filtert nach diesen sorgfälltig die gewünschten Einträge raus und zeigt sie an.
Nun zu meiner Sache:
Nehmen wir an ich habe 3 beinflussbare Suchkriterien ->
Name (eines Arztes)
Ort (Standort einer Praxis)
Kategorie (Spezialisierung des Arztes)
um letzteres (die Kategorie) gehts bei mir:
Ich möchte damits übersichtlicher wirkt Untergruppen erstellen.
Wenn ich also unter Kategorien jetzt "Hautarzt" anwähle ist das kein Problem, dass ich somit eine Variable übergebe, damit auf der Ausgabeseite steht:
HAUTÄRZTE:
Blah Sülz Blahblasülstr. 66666 7777 / 777777
77777 Sülzsuppenheim
rtzzrtz rtz Blhhblgflstr. 65467 7537 / 773526
84674 Laberhausen
usw.
Das geht ja ohne Probs mit "SELECT ... WHERE prof_division = Hautarzt" usw.
(prof_division is mein tablename für Kategorie)
es stehten dann also alle Hautärzte da. Jetzt ist es aber so, dass man auch ALLE Ärzte ausgeben lassen kann indem man keine Kategorie auswählt.
Wie bekomm ichs nun hin dass dann EINMAL die Arztkategorie als überschrift steht, darunter er dann alle z.b Hautärzte schreibt und er danach dann EINMAL Augenarzt schreibt und alle Augenärzte usw ohne dass ich für jede Kategorie (sind fast 23) ne for-schleife machen muss oder so?
Vielleicht gehts auch nur mit einer und ich denk wieder um 20 Ecken aber das will ich ja vermeiden ;)
Noch zur Info: In meiner Datenbanktabelle stehen alle Infos drin:
Also name, kategorie, plz, ort usw..
Vielen Dank schonmal im vorraus!
Euer Ralf
Hi,
Wie bekomm ichs nun hin dass dann EINMAL die Arztkategorie als überschrift steht, darunter er dann alle z.b Hautärzte schreibt und er danach dann EINMAL Augenarzt schreibt und alle Augenärzte usw ohne dass ich für jede Kategorie (sind fast 23) ne for-schleife machen muss oder so?
indem Deine umgebende Programmlogik die Änderung bemerkt (eine entsprechende Sortierung natürlich vorausgesetzt) und darauf reagiert.
Noch zur Info: In meiner Datenbanktabelle stehen alle Infos drin:
SQL ist hier für eine Lösung nicht wirklich geeignet.
Cheatah
Hallo Ralf.
Das geht ja ohne Probs mit "SELECT ... WHERE prof_division = Hautarzt" usw.
ohne dass ich für jede Kategorie (sind fast 23) ne for-schleife machen muss oder so?
Du musst keine neue for-schleife machen, nur eine neue selectabfrage
und die wiederum beschränken sich auf 2 Stück
wenn die Variable wo hausarzt drinsteht (ich nenne sie mal Kategorie) gesetzt ist, dann "SELECT ... WHERE prof_division = '$Kategorie'"[1]
sonst halt ne selectabfrage ohne Einschränkung, damit solltest Du alle Fälle abgedeckt haben
alles klar ;)
ciao
romy
[1] hab jetzt mal PHP-Syntax genommen, ist natürlich beispielsweise
Hi, hallo
(prof_division is mein tablename für Kategorie)
wie, was jetzt? was ist denn ein tablename bei dir? lt. meiner Übersetzungskenntnisse tablename = tabellenname ... du speicherst also die Ärzte je nach Kategorie in unterschiedlichen Tabellen ab?
solch ein Datenmodell fínd ich nicht so recht optimal. aber dieser Terminus beißt sich ja mit deiner zusätzlichen Info kurz vor Ende deines Postings......
du brauchst für deine Applikation zwei "schleifen", nicht unbedingt for..to..next, die ineinander geschachtelt sind und _maximal_ zwei SQL-Statements
der Rest wird durch HTML und SQL gewährleistet
die äußere Schleife läuft alle Datensätze an "Kategorien" ab (SELECT prof_division FROM aerzte GROUP BY prof_division)
und die innere Schleife mit allen Datensätzen, die "prof_division"-mäßig übereinstimmen
(SELECT * FROM aerzte WHERE prof_division=VariableForProf_divisionVonAeussererSchleife)
und das entsprechende HTML zur Darstellung der Inhalt mußt du zwischen die "Schleifen" einfügen.
Ich hoffe, ich konnte deinen Denkweg etwas begradigen :-)
Tschau, tschüß,
Frank