Hallo,
ich habe eine Bildergalerie, bei der ich zähle, wieviele Klicks ein Bild bekommen hat. Es können immer wieder Bilder hinzukommen, also muß das ganze mehr oder weniger dynamisch funktionieren.
Der relevante Teil der Table sieht so aus:
id | bildnummer | event | klicks
0 | 324 | 12122007 | 5
...
Im Groben mache ich es derzeit so:
-Ein Bild wird angeklickt
-Es wird in der Datenbank nachgeschaut, ob das bild schon vorhanden ist, in dem ich Bildnummer und Event mit WHERE abfrage
-Wenn Bild schon vorhanden, dann
- Klicks + 1
- UPDATE
Wenn nicht, dann ein INSERT mit klicks=1
Meine Frage jetzt, kann man das auch per SQL eleganter lösen?
So daß er einen Datensatz, bei dem bildnummer und event übereinstimmen klicks+1 macht und ansonsten den Datensatz neu hinzufügt?
Oder ist es besser, ich lasse es so über PHP?
Letztere Möglichkeit wäre eben nur einmal die Datenbank aufgemacht, beim ersteren muß ich ja erst die klicks in Erfahrung bringen, bevor ich sie +1 machen kann.
Wenn Ihr aber sagt, daß meine vorhandene Lösung die Übliche ist, dann laß ich es so!
Danke schonmal,
Coni
ich habe eine Bildergalerie, bei der ich zähle, wieviele Klicks ein Bild bekommen hat. Es können immer wieder Bilder hinzukommen, also muß das ganze mehr oder weniger dynamisch funktionieren.
Der relevante Teil der Table sieht so aus:
id | bildnummer | event | klicks
0 | 324 | 12122007 | 5
...
Im Groben mache ich es derzeit so:
-Ein Bild wird angeklickt
-Es wird in der Datenbank nachgeschaut, ob das bild schon vorhanden ist, in dem ich Bildnummer und Event mit WHERE abfrage
-Wenn Bild schon vorhanden, dann
- Klicks + 1
- UPDATE
Wenn nicht, dann ein INSERT mit klicks=1
Meine Frage jetzt, kann man das auch per SQL eleganter lösen?
So daß er einen Datensatz, bei dem bildnummer und event übereinstimmen klicks+1 macht und ansonsten den Datensatz neu hinzufügt?
Oder ist es besser, ich lasse es so über PHP?
Letztere Möglichkeit wäre eben nur einmal die Datenbank aufgemacht, beim ersteren muß ich ja erst die klicks in Erfahrung bringen, bevor ich sie +1 machen kann.
Wenn Ihr aber sagt, daß meine vorhandene Lösung die Übliche ist, dann laß ich es so!
Danke schonmal,
Coni
Kommentar