Ergebnis 1 bis 10 von 19

Thema: Reloads löschen sich nicht aus der DB :( VMS 1.2

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    Eleganter wäre es nur die wirklich abgelaufenen Reloads zu löschen da manche auch ggf. länger als 48 Stunden sind.

    PHP-Code:
    <?php
    db_query
    ('DELETE FROM '.$db_prefix.'_reloads WHERE bis <= '.time().'') or die('Löschen fehlgeschlagen '.mysql_error());
    db_query('OPTIMIZE NO_WRITE_TO_BINLOG TABLE '.$db_prefix.'_reloads') or die('Optimierung fehlgeschlagen '.mysql_error());
    ?>
    Ausserdem: time() ist kein String sondern ein Integer deshalb sind die doppelten Anführungszeichen falsch.

    Ausserdem statt db_query(""); einfach db_query(''); nutzen dann muss php nicht nochmal den kompletten SQL Befehl parsen, beschleunigt das ganze auch nochmal minimal :smilewinkgrin:

    Da beim Reloads löschen viele Datensätze gelöscht werden sollte die Tabelle danach optimiert werden

    Gruß
    Gremlin
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  2. #2
    Erfahrener Benutzer Avatar von didith1207
    Registriert seit
    17.09.2006
    Beiträge
    1.580
    aja vielen dank

  3. #3
    Erfahrener Benutzer Avatar von SebbyPHM
    Registriert seit
    17.07.2006
    Beiträge
    844
    Zitat Zitat von Gremlin Beitrag anzeigen
    Eleganter wäre es nur die wirklich abgelaufenen Reloads zu löschen da manche auch ggf. länger als 48 Stunden sind.

    PHP-Code:
    <?php
    db_query
    ('DELETE FROM '.$db_prefix.'_reloads WHERE bis <= '.time().'') or die('Löschen fehlgeschlagen '.mysql_error());
    db_query('OPTIMIZE NO_WRITE_TO_BINLOG TABLE '.$db_prefix.'_reloads') or die('Optimierung fehlgeschlagen '.mysql_error());
    ?>
    Ausserdem: time() ist kein String sondern ein Integer deshalb sind die doppelten Anführungszeichen falsch.

    Ausserdem statt db_query(""); einfach db_query(''); nutzen dann muss php nicht nochmal den kompletten SQL Befehl parsen, beschleunigt das ganze auch nochmal minimal :smilewinkgrin:

    Da beim Reloads löschen viele Datensätze gelöscht werden sollte die Tabelle danach optimiert werden

    Gruß
    Gremlin
    fängst ja so langsam an, wie manchmal ich zu klingen :eek6:
    Mit freundlichem Gruß
    SebbyPHM




  4. #4
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    fängst ja so langsam an, wie manchmal ich zu klingen :eek6:
    Ja klar *grins* soll ja immerhin ordentlich werden.
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  5. #5
    Benutzer
    Registriert seit
    07.05.2008
    Beiträge
    92
    Für die Leute, bei denen nichts passiert, denkt bitte daran, dass ihr erst eine Verbindung zur Datenbank aufbauen müsst
    Das sieht dann so au:

    PHP-Code:
    <?php
    @require_once ('../lib/functions.lib.php');
    db_connect();
    db_query('DELETE FROM '.$db_prefix.'_reloads WHERE bis <= '.time().'') or die('Löschen fehlgeschlagen '.mysql_error());
    db_query('OPTIMIZE NO_WRITE_TO_BINLOG TABLE '.$db_prefix.'_reloads') or die('Optimierung fehlgeschlagen '.mysql_error());
    db_close();
    echo
    'VMS_Reloads erfolgreich optimiert';
    ?>

  6. #6
    Erfahrener Benutzer
    Registriert seit
    20.06.2007
    Beiträge
    1.905
    @wolfi : das ist für leute die das vms1.1 nutzen was gremlin da gemacht hat ist für vms1,2

  7. #7
    Erfahrener Benutzer Avatar von dragon11
    Registriert seit
    06.07.2006
    Beiträge
    320
    Frage: warum einen extra cron????
    Habt ihr das nicht im cron db_opzimize.php drin? dieser solle doch eh stündlich laufen und die beiden befehle da noch unterzubringen, ist ja keine Hürde.
    mfg
    dragon11

  8. #8
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    man kann auch einfach in die header.php folgendes einbauen:

    PHP-Code:
    db_query ("DELETE FROM ".$db_prefix."_reloads WHERE bis <= '".time()."'"); 
    wer aber unbedingt db anfragen sparen will kann das ganze ja noch so verändern:

    PHP-Code:
    if(rand(0,4)==2db_query ("DELETE FROM ".$db_prefix."_reloads WHERE bis <= '".time()."'"); 
    könnte vielleicht sogar besser sein, weil so immer mal wenige zeilen gelöscht werden, beim cron aufruf aber auf einmal hunderte, nur sollte natürlich ein optimize befehl dennoch immer mal wieder ausgeführt werden.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  9. #9
    Erfahrener Benutzer Avatar von didith1207
    Registriert seit
    17.09.2006
    Beiträge
    1.580
    Zitat Zitat von dragon11 Beitrag anzeigen
    Frage: warum einen extra cron????
    Habt ihr das nicht im cron db_opzimize.php drin? dieser solle doch eh stündlich laufen und die beiden befehle da noch unterzubringen, ist ja keine Hürde.
    db_opzimize.php hab noch niemals von der datei gehört wo sollte ich die finden?

Ähnliche Themen

  1. Account löschen geht nicht
    Von Rallef im Forum Support zum VMSone
    Antworten: 15
    Letzter Beitrag: 12.10.2010, 16:23
  2. Mysql eintrag lässt sich nicht löschen ?
    Von Kraemer84 im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 20.05.2010, 14:39
  3. JP erhöht sich nicht
    Von word10 im Forum Support zu Addons & Erweiterungen
    Antworten: 3
    Letzter Beitrag: 07.12.2008, 14:07
  4. Antworten: 12
    Letzter Beitrag: 14.05.2008, 21:49
  5. hat sich erledigt ... bidde löschen!
    Von sebolus im Forum Sonstiges
    Antworten: 0
    Letzter Beitrag: 20.01.2008, 18:42

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •