Ralf: Untergruppen mit Hilfe der Datenbank anzeigen

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

  1. 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

    --
    X-Will-Answer-Email: No
  2. 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

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
  3. 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