PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur einen Teil eines Attributes per SQL ausgeben



mrzl
14.06.2010, 17:55
Hallo Leute,
Ich habe folgendes Problem:
Ich habe mit einer Abfrage 7 Zeilen mit den Namen von Komponisten ausgegeben (Ja, das ist eine Song-Datenbank) und soll jetzt nicht den kompletten Namen, sondern nur den Nachnamen ausgeben. Hier die kompletten Namen der Komponisten:


Sergei Prokofiev
Ludwig van Beethoven
Johann Sebastian Bach
John Adams
Karol Szymanowski
Gabriel Fauré
Wolfgang Amadeus Mozart

Habt ihr ne Ahnung, wie ich nur an die Nachnamen komme? :)

Liebe Grüße,
M:evil:

Janiboy
14.06.2010, 18:22
Mit Explode geht das super. Beispiel:


<?php
$name = 'Hans Meier';
$split = explode(' ', $name);
echo $split[1]; // Ausgabe: Meier
?>

fred777
14.06.2010, 18:48
Evtl. noch die Anzahl berechnen und das letzte Element splitten, dann sind auch mehrere Vornamen möglich :)

Janiboy
14.06.2010, 19:09
Ah, stimmt. Aber man kann es eigentlich dann nie herausfiltern. Wenn ich immer nur den letzten String nehme, dann sehe das bei bei folgenden Namen nicht ganz richtig aus:
Jan Moritz Mustermann Meier
Ich heiße in diesem Fall mal Mustermann Meier, ausgegeben würde aber nur Meier. Nicht ganz so einfach bei Doppelnamen. Besser wäre es, wenn man Vorname und Nachname in extra Felder speichert.

mrzl
15.06.2010, 16:08
Ich habe die Lösung gefunden!

SELECT substr(tr.composer,instr(tr.composer,' ',-1)+1) ||': '|| tr.name COMPOSERTRACK

Das scheint vom Attribut von hinten anfangend alle Zeichen zu benutzen, bis ein Leerzeichen kommt. Ziemlich praktisch und kurz. :)

Danke für eure Hilfe!

M