Zum Inhalt springen

Zeitlöschung von Datensätzen


Empfohlene Beiträge

hallo,

eigentlich ist es nur mit Cronjobs möglich

Einmal am Tag aber kannst Du bei scriptwecker einen kostenlosen Cronjob bekommen.

http://www.scriptwecker.de/

eine andere Variante wäre , die DS dann zu löschen, wenn das Script auf der Seite angefordert wird (vom User)

du lässt deinen cronjob(dein Script) einfach von den surfern auf der seite ausführen - einfach in einem 1x1px mini iframe.

da wird der seitenaufbau net beeinträchtigt .

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin gerade ein PHP Shellskript am schreiben.

Das Skript soll jede 24h, einen Tag vom Löschdatum eines Datensatzes abziehen. Wenn das Löschdatum 0 ist, soll der Datensatz gelöscht werden (kling komisch, ist aber so.)

Wie kann ich das am besten regeln? Ich muss das Skript bis am Montag fertig haben :)....

Gruß

debitux

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jojo danke wolle :-).

Ich hab das jetzt erstmal so mit dem php skript gemacht.


<?php

$daba = "neuedb";


$host = "localhost";

$user = "root";

$pass = "";


$sqls1 = "SELECT * FROM $daba";


$link=mysql_connect($host, $user, $pass) or die("Fehler, keine Verbindung");

mysql_select_db($daba);


for($j=0;$j<2;$j++)

{	

	if($j==1)

	{

		$tbl = "tbl_suche";

	}

	else

	{

		$tbl = "tbl_biete";

	}

	$result = mysql_query("SELECT * FROM $tbl ORDER BY id DESC");


	for($i=0;$i<mysql_num_rows($result);$i++)

	{

		$ergebnis[$i]=mysql_fetch_array($result);

	}


	$gesamt = count($ergebnis);


	for($i=0;$i<$gesamt;$i++)

	{

	echo "Name:\t\t".$ergebnis[$i][name]."\n";

	echo "Vorname:\t".$ergebnis[$i][vname]."\n";

	echo "Delday:\t".$ergebnis[$i][delday]."\n";

	echo "Datum:\t".$ergebnis[$i][datum]."\n";

	echo "\n\n";

	}


}

?>

Jetzt ergänze ich nur noch sowas in der Art...

        for($i=0;$i<$gesamt;$i++)

        {

        echo "Name:\t\t".$ergebnis[$i][name]."\n";

        echo "Vorname:\t".$ergebnis[$i][vname]."\n";

        echo "Delday:\t".$ergebnis[$i][delday]."\n";

        echo "Datum:\t".$ergebnis[$i][datum]."\n";

        echo "\n\n";

        if($ergebnis[$i][delday]>=1)

        {

                echo "Noch gueltig...";

######SQL INSERT/REPLACE...

        }

        else

        {

                echo "Ungueltig...";

######SQL DELETE

        }

Dann müsste es doch klappen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

So feddisch...

Jetzt geh ich heim :-)

Skript funzt....


<?php


# Author: Martin Fandel

#

# Dieses Skript soll später als Cronjob jede

# 24 h den delday einen runtersetzen. Wenn der delday

# 0 ist, wird der datensatz gelöscht...


$daba = "neuedb";


$host = "localhost";

$user = "root";

$pass = "";


$sqls1 = "SELECT * FROM $daba";


$link=mysql_connect($host, $user, $pass) or die("Fehler, keine Verbindung");

mysql_select_db($daba);


for($j=0;$j<2;$j++)

{	

	if($j==1)

	{

		$tbl = "tbl_suche";

	}

	else

	{

		$tbl = "tbl_biete";

	}

	$result = mysql_query("SELECT * FROM $tbl ORDER BY id DESC");


	for($i=0;$i<mysql_num_rows($result);$i++)

	{

		$ergebnis[$i]=mysql_fetch_array($result);

	}


	$gesamt = count($ergebnis);


	for($i=0;$i<$gesamt;$i++)

	{

	echo "ID:\t\t".$ergebnis[$i][id]."\n";

	echo "Name:\t\t".$ergebnis[$i][name]."\n";

	echo "Vorname:\t".$ergebnis[$i][vname]."\n";

	echo "Delday:\t".$ergebnis[$i][delday]."\n";

	echo "Datum:\t".$ergebnis[$i][datum]."\n";

        $id = $ergebnis[$i][id];

	if($ergebnis[$i][delday]>=1)

	{

		echo "# # #Noch gueltig...# # #\n\n";

		$newdelday = $ergebnis[$i][delday]--;

		$newdelday = $newdelday-1;

		mysql_query("UPDATE $tbl SET delday = $newdelday WHERE id = $id;");

		echo mysql_error();

	}

	else 

	{

		echo "# # #Ungueltig...# # #\n\n";

		mysql_query("DELETE FROM $tbl WHERE id = $id;"); 

		echo mysql_error();

	}


	}


}

?>

lalala

Schönes Wochenende an alle!!!

Ciaoi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum so kompliziert?

Hast du meinen Beitrag im Datenbankthread nicht gelesen?

Datei skript.sql

-----------

UPDATE tbl_suche SET delday = (delday-1);

UPDATE tbl_biete SET delday = (delday-1);

DELETE FROM tbl_suche WHERE delday<1;

DELETE FROM tbl_biete WHERE delday<1;

-----------

Mit folgenden Befehl laden:

mysql --user=user_name --password=your_password database < skript.sql

Gruß Jaraz

PS:

Wobei diese und deine Lösung sehr fehleranfällig ist, da wenn ein cronjob nicht ausgeführt wird, oder einer doppelt ausgeführt wird, deine Rechnung nicht mehr stimmt.

Ich würde eher mit einem Datumswert arbeiten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...