SQL maintenace ...

  • Steh gerade aufm Schalch.
    Ich möchte unsere db warten und dabei bestimmte, oder manchmal alle Einträge aufrufen/bearbeiten.


    "Früher" hab ich das in nem dos Fentser mit php gemacht. Allerdings läuft unser Webserver nun auf linux ohne Benutzeroberfläche.
    Nun könnte ich per SQL alle Einträge auswählen die ich brauche und in ein SESSION Array packen um bei einem autorefreh der Website die einzelnen Einträge abzuarbeiten.
    Allerdings ist das bei tausenden Einträgen Quark. Auch, weil dann irgentwo ein Browser laufen muss -.-


    Gibt es da Lösungsansätz, oder Vorgehensweisen die man da standardmäßig nutzt?

  • du willst z.b. solche Einträge löschen wo in spalte 1 fehlerhaft/abgelaufen steht (beispielt halt^^)
    oder wie willst du die aussortieren bzw warten.


    also ich schau mir die datenbanken immer mit phpmyadmin an?
    gibts den da noch ne andere möglichkeit oder ist das schon das was du suchst?



    und ja das warten ist ja eig nicht so oft das kann man dann manuel machen oder irgendeinen timer (keine anung wie das geht bei meinen hoster geht das ja eh nicht aber da du ja einen eigenen server hast sollte da was möglich sein) oder wie meinst du das mit den refrech? wie offt soll das den gewartet bzw eher abgearbeiten werden aller 5 sec?^^

  • Ne =)
    In unserer db stehen tausende Spieler (http://i-stats.net/index.php?action=phisto)
    Alle diese Spieler wurden bereits überprüft. Nun sollten betimmte (etwa jeden Monat), oder eben manchmal alle (aller 2 oder 3 Monate oder so) nocheinmal gerpüft werden.
    Manuell wäre verrückt ;D


    Mit autorefresh meine ich:
    - php script aufm server das bei jedem refresh des browsers im admin panel den nächsten Spieler des gesammten Auswahl checkt.
    Musste aber feststellen - so schnell es auch geschrieben ist, so schlecht scheint mir diese Lösung ;D



    Dachte schon an eine temp-Tabelle, in der ich alle .... naja, eigentlich auch Quark. Dann würde ich unter Umständen alle dublitzieren -.-

  • ah das problem bestet also auch unter anderen darin, dass du nicht alle Spieler auf einmal checken willst.(da da ja vll bischen was ausgelastet ist oder es zu fehlern kommt oder so keine anung^^)
    habe mich schon gefragt wiso den jeden Spieler einzeln^^


    naja dann eventuel beim aufruf eines spielers das updaten checken (was auch immer) ansonsten mm schwieriger denke ich mal

  • Du meinst bei jedem einen Eintrag wie zB 'checked' ? Evtl andersrum wie 'not_yet_checked' ;D
    Könnte gehen. Dann müsste ich aber vor Start alle markieren, die ich abarbeiten will.
    Und wenn einer fertig dann markierung löschen.
    Bei jedem Durchgang könnte man dann einen davon abarbeiten (kann nicht alle auf einmal, da ich APIs anderer Webseiten bei jedem Durchgang nutze).


    Aber hab immernoch keine andere Idee als die Browser-refresh-Variante =(

  • ich dachte mir so das ein user möchte sich einen spieler anschauen dabei könnte doch über den browser vom user die ganze sache geuptatet werden.
    aber ja auch nicht so gut dann kommen die hacker kinder^^

  • Mir fällt gerade ein - wenn ich das nun mit nem browser-refresh mache,
    dann könnte ich anfangs alle, die er bedingung entsprechen, markieren (UPDATE table SET maintenance = 'unchecked' WHERE bedingung = 'bedingung')
    und nun bei jedem browser-refresh einen davon abarbeiten,


    Aber wie kann ich in SQL den "nächsten" auswählen?
    Was mir einfallen würde wäre:


    1. alle auswählen - sind aber zu viele


    2. tricken:


    Durch "break" hätte ich nur einen "geldaden".
    Wenn dieser fertig abgearbeitet ist, kann ich ihn ja umstellen auf "UPDATE table SET maintenance = '' WHERE ID = $player['id']"


    Aber ist das annehmbar oder hab ich überhaupt nen denkfehler?


    EDIT: achja, bei der gelegenheit würde ich das wohl eher mit ajax refreshen lassen. gleich n grund das mal zu testen

  • an den sql einfach noch nen limit 1 dranhängen
    und ich würde vll damit du dann nicht alle wieder zurück auf uncheked ändern must einfach die zeit speichern bei der es das letzte mal gecheckt wurde


    und dann bei der abfrage halt, selecte die wo der letzte check ne woche her ist z.b.^^

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!