MySQL: URL zerlegen ähnl. PHP basename()

max

Erfahrenes Mitglied
Ich habe folgendes Problem:

Ich habe eine Tabelle in der gespeichert ist wie oft eine Seite aufgerufen wurde.
Die Daten stehen so in der Tabelle:
Code:
seite                                hits
http://www.domain.de/index.php        22
http://www.domain.at/index.php        10
http://www.domain.com/index.php        7
Wenn ich das ganze jetzt auslese wird für jede Domain der Wert ausgegeben, aber ich möchte sie zusammenfassen, also in die MySQL abfrage Quasi so etwas wie basename() verwenden, damit ich die Domain nicht berücksichtige.

Die ausgabe sollte dann einfach so aussehen:
Code:
seite                    hits
index.php                39
 
Speichere doch Domain und angeforderten Pfad separat. Vielleicht solltest du auch einfach alles über eine zentrale Domain laufen lassen und zusätzlich mit Sprach- oder Landesidentifikatoren arbeiten.
 
Das habe ich mir mittlerweile auch schon gedacht, aber das will ich irgendwie nicht machen, da ich das System nur etwas erweitern muss und deshalb nicht unbedingt die Datenbank überarbeiten will.

Da habe ich als ich das damals gemacht habe nicht wircklich darüber nachgedacht bzw. falsch gedacht.
 
Ganz einfach deine abfrage;
PHP:
$url = explode("/", $row['url']);
mit explode zerteilen und dann lass dir mal ausgeben damit du weißt mir welchem key der letzte teil der URL aufzurufen ist:
PHP:
echo "<pre>";
print_r($url);
echo "</pre>";
 
Zuletzt bearbeitet:
Probier’s mal mit der LOCATE()-Funktion:
Code:
SELECT
        SUBSTRING(`seite`, LOCATE("/", `seite`, 3)) AS `url-path`
  FROM
        …
 
Carrear hat gesagt.:
Ganz einfach deine abfrage;
PHP:
$url = explode("/", $row['url']);
mit explode zerteilen und dann lass dir mal ausgeben damit du weißt mir welchem key der letzte teil der URL aufzurufen ist:
PHP:
echo "<pre>";
print_r($url);
echo "</pre>";

So habe ich es jetzt provisorisch gemacht, aber das gefällt mir nicht so gut da ich das richtige ergebnis lieber direkt aus der Datenbank bekomme, da spar ich mir dann diesen Schritt.

Gumbo hat gesagt.:
Probier’s mal mit der LOCATE()-Funktion:
Code:
SELECT
        SUBSTRING(`seite`, LOCATE("/", `seite`, 3)) AS `url-path`
  FROM
        …
Danke das hilft mir schon mal sehr weiter.
 
Zurück