Deutschland United States United Kingdom
ContentLion - Open Source CMS

Punkt 47: Menüs im Admin-Bereich auflisten

Punkt 47: Menüs im Admin-Bereich auflisten

Hallo zusammen,

ich arbeite mich gerade durch das Tutorial und habe nun ein Problem bei dem Punkt 47. Es geht um die Datenbankabfrage:

SELECT id, name, ( SELECT COUNT( * ) FROM cms_menu WHERE menuID = cms_menu_names.id )count FROM `cms_menu_names`

Diese bringt bei mir immer die Fehlermeldung: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/web6/html/system/sys.php on line 79

Wenn ich die Abfrage direkt in der Datenbank eingebe bekomme ich ebenfalls einen Syntax fehler von MyPHPAdmin gemeldet.

Gibt es hier noch einen Tippfehler im Tutorial? Oder ist mein MySQL (MySQL 4.0.24)</bdo> zu alt für die Abfrage? Geht die Syntax nur bei neueren Datenbank Versionen?

Grüße,
Stephan

Hallo Stephan,

kann sein, dass zwischen der schließenden Klammer und dem "count" ein Leerzeichen fehlt?

Hi Stevie,

nein, das Leerzeichen war es leider nicht.

Ich werde jetzt mal versuchen mir einen lokalen Webserver mit der neusten MySQL Version aufzusetzen. Mal sehen ob das einen Unterschied macht!

Grüße,
Stephan

Kannst du mir mal die Meldung ausgeben, die MySQL wirft?
Falsche Syntax in der Nähe von...

UPDATE: Versuch mal den namen "count" anders zu bennenen, ist ja eigentlich reserviert.

Ich hab nun einen lokalen Server mit dem neusten MySQL und PHP aufgesetzt, anstatt Apache nutze ich allerdings IIS von Microsoft.

Der Datenbank Query funktioniert jetzt problemlos. Ich vermute mal, dass mein MySQL einfach zu alt war.

Habe dann allerdings einen neuen Fehler beim includieren des Contents bekommen, was auf dem alten Server immer Problemlos geklappt hat. Als Adresse habe ich anstatt index.php?include=testseite immer index.php?include=/testseite (mit einem "/" zuviel) bekommen. Ich weiß noch nicht woran es liegt, vielleicht am mod_rewrite. Im Moment filter ich den Slash einfach wieder raus.

Das Problem ist, beim IIS gibt es kein mod_rewrite (oder?) Welche Url öffnest du denn im Browser?

Ich befürchte die Beta (kommt am WE) wird auch nicht im IIS laufen, aber wenn du willst,
kannst du uns helfen es dort zum Laufen zu bringen ;-)

Erstmal gibt es kein mod_rewrite bei IIS, das stimmt. Man kann sich das aber nachinstallieren. GIbt es von verschiedenen Hersteller. Ich habe das http://www.isapirewrite.com/ benutzt, da hier eine Lite Version kostenlos ist! :)

Natürlich werd ich euch gern unterstützen wenn ich kann. Das ist aber auch mein erster IIS den ich in Betrieb hab! ;) Ich werd mir das nochmal genauer anschauen an was es wirklich lag und dann wieder Rückmeldung geben.

So ich hab mir das jetzt nochmal genauer angeschaut:

Mein mod_rewrite hat mir den folgenden String zurück gegeben: /index.php?include=/testseite

Hier ist der "/" vor testseite zu viel.

Ich habe nun meine RewriteRule ersetzt:
Früher (aus dem Tutorial):
RewriteRule ^(.*).htm$ /index.php?include=$1
Neu:
RewriteRule ^/(.*).htm$ /index.php?include=$1

Ich habe also einfach nur den "/" vor der Klammer ergänzt. Vermutlich arbeitet mein Mod_Rewrite etwas anders als das von Apache???

Im Moment funktioniert die Lösung jetzt für mich. Wobei ich auch erst bei Punkt 47 aus deinem Tutorial bin. Wer weiß, was sich noch alles ändern wird bis ich am Ende bin! :)

Grüße,
Stephan

Das kann natürlich sein. Wusste gar nicht das man es nachrüsten kann. Gute Sache ;-)