PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Update einer Tabelle - Verschönerung



leon
17-04-2005, 09:12
Hallo Leute

Ich habe eine Tabelle in der ich viele Schauspieler drinstehen habe. Leider sind diese untereinander geschrieben, also \n zwischen jeden

Nun möchte ich sie alle nebeneinander haben.

Der Befehl für bekannte Schauspieler sieht so aus




UPDATE `movies_list` SET `starring_actors` = 'Adam Sandler, Drew Barrymore, Sean Astin, Rob Schneider, Kent Avenido' WHERE `starring_actors` = 'Adam Sandler,\nDrew Barrymore,\nSean Astin,\nRob Schneider,\nKent Avenido';



Doch wie mache ich es jetzt für alle. Ich will ja nicht alle Namen von Hand eingeben. Es soll also so eine Art Wildcat gesetzt werden, statt der Namen der Schauspieler.

Wichtig ist auch noch, das in dieser Tabelle das Feld starring_actors nicht alle Feldeeintrage ausgefüllt sind. Es gibt auch noch freie Feldeinträge. Und auch wichtig in den Feldeinträgen stehen dann die Schauspieler in verschiedenen Reihenfolgen. Alles soll genau so bleiben nur halt ohne Zeilenumbruch zwischen den Schauspielern.


Danke Gruß Leon

mwanaheri
17-04-2005, 12:30
ich würde ehrlich gesagt die Tabelle anders gestalten, nämlich mit einer Zuordnung für jeden Schauspieler pro Film. Wenn die Reihenfolge der Einträge eine Rolle spielt, kannst du entweder die Bedeutung als Feld einrichten oder die Reihenfolge aus der Eintragsnummer (autoincrement) ableiten.

leon
17-04-2005, 13:54
Also ehrlich gesat habe ich von Datenbanken keine Ahnung. Ich habe eine Filmdatenbank, diese ist mit freier PHP Software erstellt wurden. Beim letzten Update wurde dann die Geschichte mit den Umbrüchen gemacht. Leider geht das mit Umbrüchen nicht, und jetzt stehen alle Schauspieler in einer Reihe ohne Trennung.
Ich habe ja schon den SQL Befehl ausprobiert und der geht auch. Aber leider nur wenn ich die Schauspieler in der richtigen Reinfolge kenne.

Pingu
17-04-2005, 14:18
Der Ansatz war doch schon mal gut. Wenn Du jetzt noch die Replace-Funktion von MySQL nutzt, geht es noch einfacher:

UPDATE `movies_list` SET `starring_actors` = REPLACE(`starring_actors`, '\n', '') WHERE `starring_actors` LIKE '%\n%';

oder eben halt gnadenlos alles:

UPDATE `movies_list` SET `starring_actors` = REPLACE(`starring_actors`, '\n', '');


Pingu

leon
17-04-2005, 15:48
Vielen Dank das war schon mal genau der richtige Ansatz. Bist mein Retter, hihi.

Einen Wunsch hätte ich dennoch. Zwischen den einzelnen Namen müssen noch ein Leerzeichen. Also statt den umbruches ein Leerzeichen.


Vielen Dank für Deine Geduld



Gruß Leon

mwanaheri
17-04-2005, 16:20
na, da sollte es doch reichen, wenn du als Ersetzungstext statt '' einfach ' ' angibst, also eine Leerstelle mit Hochkomma drumrum.
Wenn du die Ersetzung schon gemacht hast, ersetze einfach ',' durch ', '.
(MySQL kenne ich nicht)

leon
17-04-2005, 16:50
Es hat geklappt. Ich bedanke mich bei allen. Und besonders bei Euch beiden mwanaheri und Pingu.


Habt noch einen schönen Sonntag



Euer Leon