redback79
Erfahrenes Mitglied
hallo erst mal...
ich habe auf für meine seite ein news-script "gebastelt", dass auch prächitg funktioniert...
bisher habe ich es so gelöst, dass einräge die alter als zwei monate sind automatisch archiviert werden und dann über das newsarchiv abgerufen werden können...
nun das problem:
im gengensatz zu "früher" möchte ich nun, dass lediglich die fünf aktuellsten newseinträge angezeigt werden und der 6te eintrag automatisch archiviert wird...
leider habe ich keine ahnung wie ich das angehen soll!?!?
hier mal der code wie die archivierung bisher funktionierte:
könnt ihr mir weiterhelfen?
THX im voraus
redback
ich habe auf für meine seite ein news-script "gebastelt", dass auch prächitg funktioniert...
bisher habe ich es so gelöst, dass einräge die alter als zwei monate sind automatisch archiviert werden und dann über das newsarchiv abgerufen werden können...
nun das problem:
im gengensatz zu "früher" möchte ich nun, dass lediglich die fünf aktuellsten newseinträge angezeigt werden und der 6te eintrag automatisch archiviert wird...
leider habe ich keine ahnung wie ich das angehen soll!?!?
hier mal der code wie die archivierung bisher funktionierte:
PHP:
...
//verbindung zur datenbank herstellen
if (!($verbindung = mysql_pconnect ("localhost", "username", "password")))
{
echo("Der Verbindungsaufbau ist fehlgeschlagen!<p>");
exit();
}
mysql_select_db("neuigkeiten");
$anzahl_eintraege = mysql_num_rows ($sqlanfrage); //prüfen, ob überhaupt einträge vorhanden sind
// kontrolle ob eintrag älter ist als 2 monate, wenn ja, dann archivieren!!! (anmerkung: 1 = neu / 2 = archiviert)
if ($anzahl_eintraege > 0) { //falls einträge vorhanden sind..
$sqlkommando_2 = "select * FROM eintrag where archiv = 1";
$sqlanfrage_2 = mysql_query($sqlkommando_2);
while($daten1 = mysql_fetch_object($sqlanfrage_2)) {
//echo "$daten->id";
$erstelldatum = $daten1->id;
$aktuelldatum = time();
$zeitdifferenz = bcsub ("$aktuelldatum", "$erstelldatum"); //achtung! nicht alle server beherrschen den befehl bcsub(); ! -> PHP muss dafür speziell eingerichtet sein!
if ($zeitdifferenz > 5184000) { //5184000 = 2 monate in sekunden!
$sqlkommando_1 = "update eintrag set archiv = 2 ";
$sqlanfrage_1 = mysql_query($sqlkommando_1);
$wieviele = mysql_affected_rows ();
}
} //end while!
}
...
könnt ihr mir weiterhelfen?
THX im voraus
redback