SQL Abfrage geht nicht mehr

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
DerVorstand
Mitglied
Beiträge: 10
Registriert: 15.08.2007 10:43

SQL Abfrage geht nicht mehr

Beitrag von DerVorstand »

Ich habe meinen Hoster gewechselt und jetzt läuft eine SQL-Abfrage nicht mehr. Leider bin ich nicht so fit darin. Die Abfrage hatte mir damals ein Bekannter zusammengestrickt. Kann mir jemand sagen wo hier das Problem sein könnte.
Die Abfrage soll eine Liste herausbringen, mit Infos über die Benutzer des Boards. Hier also die Abfrage:

Code: Alles auswählen

$sql="SELECT u.username, u.user_session_time, r.rank_title, r.rank_min, u.user_posts, s2.mymin
FROM phpbb_users u, phpbb_ranks r, (

SELECT username, max( rank_min ) mymin
FROM `phpbb_users` , phpbb_ranks
WHERE phpbb_ranks.rank_min <= phpbb_users.user_posts
GROUP BY username
)s1, (

SELECT username, min( rank_min ) mymin
FROM `phpbb_users` , phpbb_ranks
WHERE phpbb_ranks.rank_min > phpbb_users.user_posts
GROUP BY username
)s2
WHERE s1.username = s2.username
AND s1.username = u.username
AND s1.mymin = r.rank_min
AND s1.username <> 'Anonymous'
ORDER BY $order_by ";
Das Problem scheint irgendwie an dem "max(rank_min )" bzw "min( rank_min )" zu liegen. Muss man das vielleicht anders schreiben?
Für Euere Hilfe, jetzt schon mein herzlichstes DANKESCHÖN
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Versuch mal diese schreibweise....

SELECT username, MIN( rank_min ) AS mymin
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
DerVorstand
Mitglied
Beiträge: 10
Registriert: 15.08.2007 10:43

Beitrag von DerVorstand »

Nein, geht leider auch nicht. Die Fehlermeldung die kommt ist übrigens:

Code: Alles auswählen

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT username , max( rank_min ) as mymin  FROM `phpbb_users` 
Vielleicht kann ja jemand was damit anfangen :(
Wenn einem die Scheiße bis zum Hals steht, sollte man den Kopf nicht hängen lassen.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Dann schreib mal bitte MIN MAX und AS groß!

Vielleicht hilfts....

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Und wenn das nicht hilft mal bunte kringel drum und befrage die Glaskugel :roll: . Im Ernst: Groß- und Kleinschreibung ist bei SQL bis auf wenige Ausnahmen egal, so daß deine Raterei da nicht viel weiterhilft.

Wenn man sich die Fehlermeldung anguckt, sieht man daß nicht das min/max, sondern das SELECT bemängelt wird. Das deutet darauf hin, daß die verwendete MySQL-Version keine Subqueries unterstützt. Und da der Fehler erst seit dem Hosterwechsel auftritt, nutzt der neue Hoster wohl eine ältere MySQL-Version als der vorige.

Lösung: Hoster anschreiben und zum Update von MySQL auffordern. Die letzte MySQL-Version, die noch keine Subqueries unterstüzte (4.0) ist nämlich bereits viereinhalb Jahre alt und wird seit fast einem Jahr nicht mehr von mysql.com unterstüzt.
KB:knigge
Benutzeravatar
DerVorstand
Mitglied
Beiträge: 10
Registriert: 15.08.2007 10:43

Beitrag von DerVorstand »

Heißt das jetzt im Klartext, das ich aktuell eine mySQL Version 4.0 nutze und bräuchte aber eine Version 5.0?
Wenn einem die Scheiße bis zum Hals steht, sollte man den Kopf nicht hängen lassen.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Im Prinzip schon.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du könntest das Script natürlich auch so umschreiben, daß keine Subqueries verwendet werden. Aber da MySQL 4.0 wie gesagt schon seit September 2006 nicht mehr unterstützt wird, ist ein Update dringend anzuraten - denn wenn in MySQL 4.0 Sicherheitslücken gefunden werden, bist du denen schutzlos ausgeliefert, weil es keine Bugfixes mehr geben wird.
KB:knigge
Benutzeravatar
DerVorstand
Mitglied
Beiträge: 10
Registriert: 15.08.2007 10:43

Beitrag von DerVorstand »

Habe jetzt umgestellt auf MySQL 5 und siehe da, es funktioniert wieder alles :grin: Vielen Dank nochmal für den Tipp.
Wenn einem die Scheiße bis zum Hals steht, sollte man den Kopf nicht hängen lassen.
Antworten

Zurück zu „Coding & Technik“