tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
292
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PaRkY PaRkY ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    58
    Für eine Fussball-Page möchte ich eine Statistikseite aufbauen. Dort sollen die 5 Spiele mit der grössten Tordifferenz (tore_home - tore_guest) der Reihe nach geordnet werden, wobei es egal ist ob die Tordifferenz -5 oder 5 ist.

    wie bewerkstellige ich das am besten?

    danke für die Hilfe.
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Folgendes Query könnte Deine Abfrage sein:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    SELECT
     feld1,
     feld2,
     [COLOR=DarkGreen]# weitere Felder[/COLOR]
     [B](tore_home - tore_guest) AS Tordifferenz[/B]
    FROM Tabelle
    [COLOR=DarkGreen]# ggf. Einschränkung auf Saison o.a. mit WHERE[/COLOR]
    [B]ORDER BY ABS(Tordifferenz) DESC[/B]
    [B]LIMIT 5[/B]
    Auf Deine Tabellenstruktur anpassen mußt Du es selber.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  3. #3
    PaRkY PaRkY ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    58
    hmm.. irgendwie klappt das nicht. Folgende Fehlermeldung kommt:


    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/schiedsrichter-team.ch/httpdocs/stats.php on line 18
    Die fünf torreichsten Spiele der Saison

    Line 18: while ($row=mysql_fetch_array($sql))
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Arghhhh..............
    Bitte die PHP-Board-Regeln (Punkt c) lesen und beachten.
    Dann die Fehlermeldung und das fertige Query posten.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  5. #5
    PaRkY PaRkY ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    58
    --> Unknown column 'Tordifferenz' in 'order clause'


    $sql="SELECT * (goals_home - goals_guest) AS Tordifferenz FROM spielplan ORDER BY ABS(Tordifferenz) DESC LIMIT 5";


    wo liegt das Problem?
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    SELECT
    [B] feld1, [COLOR=DarkGreen]# Du musst die[/COLOR]
     feld2, [COLOR=DarkGreen]# Felder einzeln angeben[/COLOR]
    [/B] (tore_home - tore_guest) AS Tordifferenz
    FROM Tabelle
    [COLOR=DarkGreen]# ggf. Einschränkung auf Saison o.a. mit WHERE[/COLOR]
    ORDER BY ABS(Tordifferenz) DESC
    LIMIT 5
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  7. #7
    PaRkY PaRkY ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    58
    das geht immer noch nicht:
    PHP-Code:
    $sql="SELECT
     goals_home, 
     goals_guest, 
     (goals_home - goals_guest) AS Tordifferenz
    FROM spielplan
    ORDER BY ABS(Tordifferenz) DESC
    LIMIT 5"


    gibt wieder: "Unknown column 'Tordifferenz' in 'order clause'"
     

  8. #8
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Hmm.. ich war der Meinung Alias-Felder können nur im Where nicht verwendet werden.
    Offensichtlich geht es auch im Order By nicht, wenn sie dort in einer Funktion benutzt werden.
    Zwei getestete Möglichkeiten, die funktionieren:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    SELECT
      goals_home,
      goals_guest,
      (goals_home - goals_guest) AS Tordifferenz,
      ABS(goals_home - goals_guest) AS AbsTordifferenz
    FROM spielplan
    ORDER BY AbsTordifferenz DESC
    LIMIT 5
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    SELECT
      goals_home,
      goals_guest,
      (goals_home - goals_guest) AS Tordifferenz
    FROM spielplan
    ORDER BY ABS(goals_home - goals_guest) DESC
    LIMIT 5
    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

Ähnliche Themen

  1. Wert mit kleinster Differenz suchen
    Von F_P_aus_K im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 12.11.09, 11:53
  2. grösste Wert
    Von pikus im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 07.05.07, 20:26
  3. Grösste Zahl ermitteln ?!
    Von Grunge im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.02.06, 10:13
  4. Query um in dem neuesten Text zu suchen
    Von won_gak im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 09.07.04, 22:54
  5. Query - 3 Werte mit einer Zeile suchen
    Von Subwoover im Forum PHP
    Antworten: 1
    Letzter Beitrag: 26.12.03, 17:54