Anfängerfrage Ausgabe sortieren mit ORDER BY

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anfängerfrage Ausgabe sortieren mit ORDER BY

    Hallo,

    ich habe ein Problem mit der Ausgabe einer mySQL-Abfrage, speziell beim Sortieren der Ausgabe:


    Datenbank "kunden" mit Kundendaten
    abgefragt wird per Formular das Bundesland
    ausgegeben werden sollen dann aus dem gewählten Bundesland die Kunden mit: Name, Strasse, Stadt, Bundesland, Telefon

    Diese Ausgabe soll dann geordnet werden:
    1. zuerst sollen alle Einträge angezeigt werden mit Priorität 1, alphabetisch nach Namen
    2. und dann alle anderen (Priorität 2) geordnet alphabetisch nach Städten

    Ich hab´s probiert mit (Auszug)

    PHP-Code:
    $anfrage mysql_query("SELECT Name, Strasse,Stadt, Bundesland, Telefon
    FROM kunden WHERE Bundesland = '
    $Bundesland' ORDER BY Priority = '1' DESC, City"); 
    Die Ausgabe zeigt tatsächlich alle Kunden mit Priorität 1 als erstes an, allerdings nicht geordnet alphabetisch nach Namen, sondern alphabetisch nach Stadt (so wie Order Kriterium 2). Alle anderen mit Priorität 2 werden, wie gewünscht, dann nach Städten geordnet.

    Da muss ich doch bestimmt das erste ORDER Kriterium mit der Priorität 1 irgendwie verknüfen mit einer zusätzlichen ORDER nach Namen, oder?

    Kann einem anfänger mal einer auf die Sprünge helfen, wie so was geht bzw. wie die o.a. Ausgabe professionell lautet? Danke.

    mayer
    Zuletzt geändert von wahsaga; 02.07.2006, 15:38.

  • #2
    Re: Anfängerfrage Ausgabe sortieren mit ORDER BY

    Lies bitte die Regeln - und breche das nächste Mal deinen Code selber um!

    Da muss ich doch bestimmt das erste ORDER Kriterium mit der Priorität 1 irgendwie verknüfen mit einer zusätzlichen ORDER nach Namen, oder?
    Nee, das würde m.E. nichts helfen - denn dann würden die mit Prio 2 ebenfalls nach Namen sortiert.

    Mein Vorschlag wäre, eine zusätzliche "Sortierspalte" abhängig von der Priorität dynamisch jeweils mit dem Namen oder der Stadt zu füllen, und dann diese als zweites Sortierkriterium nach der Prio zu verwenden.

    Code:
    "SELECT ..., IF(Priority=1, Name, Stadt) AS mySort
    FROM kunden WHERE Bundesland = '$Bundesland' ORDER BY Priority, mySort"
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar

    Lädt...
    X