[gelöst] Datumsbereich löschen ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [gelöst] Datumsbereich löschen ?

    hallo , ich habe da eine Snoutbox und wollte da nun datumsbereiche löschen .

    die db sieht so aus

    id Date user message
    1 2009-10-17 20:55:51

    usw.


    kann mir jemand sagen wie ich das machen könnte ??

    ich habe es so versucht geht aber nicht

    PHP-Code:
    $mysql->db_Connect($mySQLserver$mySQLuser$mySQLpassword$mySQLdefaultdb); 
    if (isset(
    $_POST['prune'])) {

    $loeschen "DELETE FROM shoutbox WHERE message LIKE 2009-10-%";
    $loesch mysql_query($loeschen);

        
    $message "Chat pruned";

    }

         
       
    $titel $row->titel
    //DELETE FROM shoutbox WHERE date LIKE 2009-10-%
    //löscht alle Einträge vom oktober 2009
    //DELETE FROM shoutbox WHERE date LIKE 2009-10-27%
    //löscht alle einträge vom 27 oktober 2009 


        
    $text .= "
            <form method='post' action='"
    .e_SELF."' >
        <table><tr>
            <td class='forumheader3' style='width:40%'>Prune
    Delete posts older than a certain time period</td>
            <td class='forumheader3' style='width:60%'>
             <select name='date' class='tbox'>
            <option></option>
            <option value=''>oktober</option>
            <option value='604800'>"
    .CB2LAN_25."</option>
            <option value='2592000'>"
    .CB2LAN_26."</option>
            <option value='1'>"
    .CB2LAN_27."</option>
            </select>
            
            <input class='button' type='submit' name='prune' value='prune' />
            </td>
            </tr>
        "


  • #2
    Mach aus

    PHP-Code:
    $loesch mysql_query($loeschen); 
    mal

    PHP-Code:
    $loesch mysql_query($loeschen) or die(mysql_error()); 

    und Du wirst sehen was falsch ist. :-)

    Kommentar


    • #3
      jo da kommt ein syntax fehler

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-10-%' at line 1

      aber ich kann leider mit mein bischen php kentnissen damit nix anfangen da ist ein fehler bei -10-% nur welcher?

      Kommentar


      • #4
        Der Fehler ist, dass 2009-10-% keine gültige Zahl ist.
        Du willst ein Textliteral notieren, also tu das auch.
        http://dev.mysql.com/doc/refman/5.1/...ng-syntax.html


        Darüber hinaus müsste man sich schon stark wundern, wenn die Spalte namens message wirklich das Datum enthält.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Es gibt etliche Möglichkeiten

          Code:
          DELETE FROM shoutbox 
           WHERE `Date` BEETWEN '2009-10-01' AND '2009-10-31'
          Code:
          DELETE FROM shoutbox 
           WHERE YEAR(`Date`) = 2009 AND MONTH(`Date`) = 10
          und so weiter......
          Wir werden alle sterben

          Kommentar


          • #6
            hab es mal so versucht

            PHP-Code:
            $mysql = new db();
            $mysql->db_Connect($mySQLserver$mySQLuser$mySQLpassword$mySQLdefaultdb); 
            if (isset(
            $_POST['prune'])) {

            $loeschen "DELETE FROM shoutbox 
             WHERE YEAR(`Date`) = 2009 AND MONTH(`Date`) = 10"
            ;
            $loesch mysql_query($loeschen) or die(mysql_error());

                
            $message "Chat pruned";

            }

                 

                
            $text .= "
                    <form method='post' action='"
            .e_SELF."' >
                <table><tr>
                    <td class='forumheader3' style='width:40%'>Prune
            Delete posts older than a certain time period</td>
                    <td class='forumheader3' style='width:60%'>
                     <select name='prune' class='tbox'>
                    <option></option>
                    <option value='604800'>oktober</option>
                    <option value='604800'>"
            .CB2LAN_25."</option>
                    <option value='2592000'>"
            .CB2LAN_26."</option>
                    <option value='1'>"
            .CB2LAN_27."</option>
                    </select>
                    
                    <input class='button' type='submit' name='prune' value='prune' />
                    </td>
                    </tr>
                "
            ;




                
            $text .= "
                    
                    </table>
                    </form>
                    </div>
                "

            das geht soweit nur das select was ja klar ist geht nicht wie kann ich den code so umbauen das ich beim select zb One day,one week,one month und alles löschen auswählen kann ?

            Kommentar


            • #7
              Hallo,

              das kannst du genau so leicht mit einer Where-Klausel erledigen. Ein Blick ins MySQL-Handbuch zum Thema Datumsfunktionen, dort schnell now() und date_sub() nachgeschlagen und schon weißt du, wie es geht.

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                danke aber leider versteh ich da nur Bahnhof.

                da ich mich damit nicht so besonders auskenne würde mich freuen wenn jemand mir den code mal aufzeigen könnte

                Kommentar


                • #9
                  Wäre schön, wenn du zunächst deine eigenen begründeten Ansätze zeigst. Andernfalls ist das ein klarer Fall für Projekthilfe.

                  Kommentar


                  • #10
                    würd ich ja gerne nur weiss ich nicht wo ich da ansetzten soll

                    Kommentar


                    • #11
                      Hier ein paar Beispiele:

                      Code:
                      -- alles außer heute löschen:
                      delete from shoutbox where `date` < curdate()
                      
                      -- alles bis (einschließlich) vorgestern löschen:
                      delete from shoutbox where `date` + interval 2 day <= curdate()
                      
                      -- alles außer dem laufenden Monat löschen:
                      delete from shoutbox where extract(year_month from `date`) < extract(year_month from curdate())
                      Wenn du mehr brauchst, lies im MySQL Handbuch nach, dort sind auch Beispiele drin!
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        danke das war supi

                        Kommentar

                        Lädt...
                        X