In bestimmte Zeilen Schreiben MySQL (nicht update)
Hallo, ich habe folgende Frage:
ich habe 2 Zeilen in mysql
in zeile 1 ist das datum a, das bei seitenaufruf aktualisiert werden soll
in zeile 2 soll das ältere datum rutschen, das von zeile 1, wenn zeile 1
aktualisiert ist.
wie erreiche ich, das bei seitenaufruf immer nur zeile 1 geupdated wird.
und das dann beim update gleichzeitig der inhalt von zeile 1 in zeile 2 rutscht
technisch ist das nicht so das problem aber organisatiorisch weiss ich nicht
wie ich das machen soll,
da ich mit dem my sql update befehl ja nur bei formularen arbeiten kann und nicht
bei einem seitenaufruf
gruss Siegfried
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
wieso solltest du mit einem updateaufruf nur bei formularen arbeiten können? was hat ein html-formular mit einem sql-query in einem script zu tun? oder steh ich auf der leitung und habe deine aussage falsch verstanden?
nunja, es muss ja erstmal geschrieben werden, um was zu updaten und wenn nur eine update befehl dort ist, wie soll das gehen
na wenn du nur das aktuelle datum schreiben willst, dann brauchst du keine daten vom browser des users, ergo auch kein formular. du kannst ja die zeit auf dem server erzeugen (was eh viel zuverlässiger ist im allgemeinen). somit kannst du einen updatebefehl im script einbauen der bei jedem aufruf des scriptes ausgeführt wird. tut mir leid falls ich deine frage falsch verstanden habe.
Ich könnte dir mal mein Scipt mailen, ich hatte mal was ähnliches vor
[Diese Nachricht wurde nachträglich bearbeitet.]
Zumindest denke ich mal, das er kein formular ausgeben will, sonst hab ich da was falsch verstanden, ansonsten @ Tester: poste einfach mal deinen code, sonst versteht hier keiner genau was du damit machen willst, ich hab das einfach mal auf mein problem bezogen: ich wollte mal den letzten besuch des users anzeigen :)
nene, ist schon ok,
also ich poste mal den ablauf
--> der erste besucher der seite kommt : Schreiben in die Tabelle (erste Zeile wird erzeugt) nun ist das datum und so weiter vorhanden es wird allerdings nicht ausgegeben
--> der zweite besucher der seite kommt: Die erste Zeile rutscht eines tiefer, da jetzt eine neue Zeile erzeugt wird. wieder mit aktuellem datum etc. Nun wird die 2. zeile ausgegeben, also das datum, wann der vorige besucher sich eingelogged hat.
--> so nun das Problem: Jetzt hab ich noch 2 Zeilen, das ist kein problem, allerdings wird bei jedem besucher eine Zeile hinzugefügt, alles kein problem, denn ich kann ja programmieren ob welche zeile ich ausgeben will. allerdings ist mein problem, dass bei 100 besuchern die DB stinkvoll wird. ich könnte nun einen automatischen job mitlaufen lassen, der immer alle zeilen ausser der 1. und der 2. löscht, aber das kostet traffic
-------------
Deshalb will ich eben , dass nur 2 zeilen vorhanden sind und bleiben:
in die erste wird das aktuelle datum geschrieben, die zweite ausgegeben
beim nächsten besucher rutscht die 1. in die 2. zeile, in die 1 wird das aktuelle datum geschrieben und die 2. ausgegeben.
hoffe das ist klar. also mit formularen war das nur ein beispiel, wiel ich nicht enfach ein update einbauen kann, wenn ich nicht weiss, was ich updaten will, ich habe keine ahnung wie ich das organisieren soll
$db=mysql_connect("","","");
mysql_select_db("name",$db);
$result1=@mysql_query("SELECT zeit FROM tabellenname WHERE zeile=1");
if($time1=mysql_fetch_assoc($result1)){
echo $time1[\'zeit\'];
$ins=mysql_query("UPDATE tabellenname SET zeit=\'".$time1[\'zeit\']."\' WHERE zeile=2";
$actime=date("H:i:s");
$instime=mysql_query("UPDATE tabellenname SET zeit=\'".$actime."\' WHERE zeile=1");
}
habe das script zwar nicht auf funktion getestet, sollte aber laufen wenn du die tabelle folgendermaßen anlegst:
zeile | zeit |
int(1) | char(8) |
1 | 00:00:00 |
2 | 00:00:00 |
dummyeinträge nicht vergessen anzulegen. zwar könnte auch die datenbank die zeit erzeugen, aber dann muß man die ausgabe formatieren. die zeit gleich im gewünschten format erzeugen finde ich persönlich einfacher.