Zur Navigation

Daten automatisch löschen

bei einer einfachen .dat Datenbank

1 AndreasH (Gast)

Hallo zusammen,

ich nutze auf meiner Webseite folgenden - unschönen und wahrscheinlich eher mittelalterlich anmutenden Quellcode um auf der Startseite 4 Termine anzeigen zu lassen:

<?
// Anzahl der anzuzeigenden News
$x=4;

$datei=file("data/datenbank.dat");

$fp=fopen("folder/datenbank.dat","r");

foreach ($datei as $eintrag){

list()=explode("|",trim($eintrag));
$zeile=fgets($fp,"10000");
if($zeile!=""){
list($nr,$wann,$von,$bis,$kurz,$lang,$kategorie,$wo,$wo2,$veranstalter,$mail,$www,$tel,$fax,$plakat,$frei)=explode("|",$zeile);
echo " 
<table width=220 class=news border=0>
  <tr>
    <td colspan=3 class=partner>&#149; <u>$wann</u></td>
  </tr>
  <tr>
    <td width=5></td>
    <td width=190 class=partner>$kurz</td>
    <td width=25 class=partner align=top valign=top>&#149; <a href=index2-veranstaltungen-alle.php#$nr target=_newer>Info</a></td>
  </tr>
</table>
<img src=images/blind.gif border=0 height=1 width=40><BR>";
$k++;
If ($k==$x){ exit;}
}
}

?>

Ich würde diesem Code gern die Funktion hinzufügen, dass sie $nr ausließt (Hier findet sich das Datum in der Form JJ-MM-DD) und veraltete Daten automatisch aus der Datenbank entfernt.

Da meine komplette Webseite noch auf diesem einfachen System aufgebaut ist und gut funktioniert, möchte ich ungerne das laufende System ganz aufgeben - für meine Zwecke genügt das so.

Kann mir jemand helfen den String dazu zu dichten? Ich bin leider sowas von aus der Übung, dass ich das nicht zusammen bekomme :-(

Da die Webseite immer mehr in Anspruch genommen wird, wird es langsam lästig im Schnitt alle 2-3 Tage Termine von "Hand zu Fuß" aus der Datei löschen zu müssen....

Grüße
Andreas

www.voelklingen-im-wandel.de

03.02.2013 19:33

2 AndreasH (Gast)

es hat sich beim ausprobieren ein Fehlerteufel eingeschlichen, so lauten die beiden Zeilen korrekt:

$datei=file("data/datenbank.dat");

$fp=fopen("data/datenbank.dat","r");

Gruß

03.02.2013 19:34

3 Jörg Kruse

Ja, der Code ist wirklich etwas abenteuerlich...

Ich würde diesem Code gern die Funktion hinzufügen, dass sie $nr ausließt (Hier findet sich das Datum in der Form JJ-MM-DD) und veraltete Daten automatisch aus der Datenbank entfernt.

Dazu musst du die Datei wohl neu schreiben. Ein Ansatz findet sich hier:

http://www.php-faq.de/q-datei-einfuegen.html

Das Datum kannst du in der if Anweisung mithilfe von date() vergleichen

if ($nr < date("y-m-d")) {
    continue;
}

Entspricht $nr wirklich dem Datum? von der Bezeichnung her würde eher $wann passen.

Zur Sicherheit würde ich erstmal mit einer Kopie der Datenbank testen...

03.02.2013 20:53

4 AndreasH (Gast)

Ja, NR entspricht dem. nutze grundsätzlich die selbe programmierung für news, branchen- und vereinsverzeichnis.

Verstehe ich das richtig, dieser Text legt eine neue Datei an - löscht dort die alte Zeile und über schreibt die alte datei mit der neuen?

03.02.2013 21:39

5 Jörg Kruse

Verstehe ich das richtig, dieser Text legt eine neue Datei an - löscht dort die alte Zeile und über schreibt die alte datei mit der neuen?

Du meinst das Script auf der verlinkten Seite? ja, so wie es in dem dritten Absatz beschrieben ist. D.h. eigentlich werden dort alle Zeilen nicht in die neue Datei geschrieben, die eine bestimmte Bedingung erfüllen. Das "continue" springt dabei zum nächsten Schleifendurchlauf

03.02.2013 22:44 | geändert: 03.02.2013 22:46

6 AndreasH (Gast)

Alles klar,
ich denke ich werde das ganze mal mit einer 2. DB testen und ggf. auch versteckt ausführen, um kein datenbank-durcheinander zu veranstalten, wenn mehrere zugriffe gleichzeitig gemacht würden....

09.02.2013 17:05

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]