wissensdojo
Goto Top

Schreiben in Datenbank mit MYSQL und PHP

Hallo liebe Gemeinde,

Quellcode als Beispiel:

$host="localhost";
$user="admin";
$passwort="***";
$DB="Personen";

Connection
$Link = mysql_connect($host,$user,$passwort) or die (mysql.error());
mysql_select_db($DB, $Link);

Vorname, Nachname, Alter in Datenbank
$result = mysql_query("INSERT INTO `benutzerdaten` (`PING`, `Datum`, `Antwort`)
VALUES ('$ping', '$heute', '$antwort')");

Ich habe kein Problem, funktioniert super, sondern nur eine Frage.
Ich habe dafür eine .Bat am laufen, die im 5 Minutentakt die Datenbank.php ausführt und den Ping in eine Datenbank schreibt.
Ich möchte nur, dass 50 Einträge gemacht werden. Dann sollen alte Einträge durch die neuhinzugekommenen Einträge ersetzt werden.
(Ich möchte nicht dauernd neue, weil sonst habe ich an einem Tag schon 288 Einträge. Das darf man garnicht erst auf eine Woche rechnen).

Ich hoffe jemand kann mir dabei helfen. Vielen Dank im Vorraus.

Content-Key: 158113

Url: https://administrator.de/contentid/158113

Printed on: April 19, 2024 at 05:04 o'clock

Member: ITLocke
ITLocke Jan 06, 2011 at 13:13:18 (UTC)
Goto Top
Hallo Wissensdojo

auf die Schnelle würde ich dem Datensatz einen Zeitstempel hinzufügen und eine zweite Query die alle Datensätze älter als 'aktuelle Zeit' - 50 x 5min löscht.

Gruß
Member: WissensDojo
WissensDojo Jan 06, 2011 at 13:54:47 (UTC)
Goto Top
Danke für die schnelle Überlegung. Werde es heute Abend mal ausprobieren.
Über weitere Ideen wäre ich sehr dankba
Member: WissensDojo
WissensDojo Jan 06, 2011 at 15:02:19 (UTC)
Goto Top
habe es jetzt so gemacht :

$loschen = mysql_query("DELETE FROM `marco` WHERE `Uhrzeit`<=CURRENT_TIMESTAMP-3");

aber brauche nicht 3 minuten sondern 2 wochen
Member: WissensDojo
WissensDojo Jan 06, 2011 at 15:41:50 (UTC)
Goto Top
Habe es nun selber raus gefunden, aber dank der Info mit den TIMESTAMP habe ich das Problem gelöst. Also vielen Dank dafür.

Ich poste schnell die Lösung. --> Datensätze löschen, die älter als 2 Wochen sind:
Variable 2 Wochen
$zweiwochen = date('Y-m-d', strtotime('-2 week'));
echo $zweiwochen;

Löschung der alten Datensätze
$loschen = mysql_query("DELETE FROM `marco` WHERE `Datum`<= '$zweiwochen'");
if(!$loschen){
echo "OOOOMMMG";
}
else{
echo "Löschung erfolgte<br><br><br>";
}
Member: maretz
maretz Jan 06, 2011 at 15:43:59 (UTC)
Goto Top
Moin,

gut das du kein Arzt geworden bist - bei Kopfschmerzen gibts dann auch gleich mal kurz die Holzhammer-Narkose, ja? ;)

http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html -> guck dir mal "interval" und "weeks" an... -> da machst das gleich im sql-Statement ;)
Member: dog
dog Jan 06, 2011 at 16:47:40 (UTC)
Goto Top
(Ich möchte nicht dauernd neue, weil sonst habe ich an einem Tag schon 288 Einträge. Das darf man garnicht erst auf eine Woche rechnen).

Völlig uninteressant. In einer MySQL-Datenbank sollten - wenn man sie denn richtig konzipiert - auch 5 Millionen Werte stehen können, ohne dass es sie beeinträchtigt.

Zudem ist eine relationale Datenbank das falsche Werkzeug, für das was du machen willst.
Dafür benutzt man Round-Robin-Datenbanken, wie z.B. RRDTool
Aber bei Google findet man auch genug für MySQL...