MySQL Frage

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Antworten
thowa
Mitglied
Beiträge: 55
Registriert: 19.07.2005 15:11

MySQL Frage

Beitrag von thowa »

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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

$var = time();
$sql = "INSERT INTO `phpbb_bla` (zeitstempel) VALUES ('$var')";
thowa
Mitglied
Beiträge: 55
Registriert: 19.07.2005 15:11

Beitrag von thowa »

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 ???
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

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
}
}
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Zum einen gibt es REPLACE und dann noch ON DUPLICATE KEY UPDATE - siehe http://dev.mysql.com/doc/mysql/en/replace.html

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
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“