Tach,
ich wüsste gerne, wie der geschickteste Ansatz lautet, um bei bestimmten Aktionen eines Users in der Datanbank ein Zeitstempel abzulegen.
Etwa so Benutzer XXX hat Objekt YYY um ZZZ betrachtet.
Wenn der entsprechende Eintrag (für Benutzer und Objekt) bereit existiert, soll der Zeitstempel aktualisiert werden.
Wenn nicht, muß der Eintrag erstellt werden.
Mein Hoster Verwendet MySQL 4.0.25-standard.
Danke, Thorsten
MySQL Frage
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Code: Alles auswählen
$var = time();
$sql = "INSERT INTO `phpbb_bla` (zeitstempel) VALUES ('$var')";
Dies führt aber zu mehrfachen Einträgen in der DB wenn der Benutzer das gleiche Objekt mehrfach betrachtet.
Das soll nicht passieren.
Es muss also erst geprüft werden, ob schon ein Eintrag für die Kombination von Benutzer und Objekt schon existiert.
Gibt es da nicht soetwas wie
UPDATE 'tabelle' (user, objekt, zeitstempel) VALUES (user_id, objekt_id, '$var') CREATE_IF_NOT_EXISTS ???
Das soll nicht passieren.
Es muss also erst geprüft werden, ob schon ein Eintrag für die Kombination von Benutzer und Objekt schon existiert.
Gibt es da nicht soetwas wie
UPDATE 'tabelle' (user, objekt, zeitstempel) VALUES (user_id, objekt_id, '$var') CREATE_IF_NOT_EXISTS ???
Code: Alles auswählen
$sql = "SELECT zeitstemper FROM `bla` WHERE `username` = $username LIMIT 1";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
if($zeitstempelbyuser != $row['zeitstempel'])
{
//Code von oben
}
}
Zum einen gibt es REPLACE und dann noch ON DUPLICATE KEY UPDATE - siehe http://dev.mysql.com/doc/mysql/en/replace.html
Gruß, Philipp
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods