Leeren einer Tabelle

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

  • Leeren einer Tabelle

    Ich habe einen Captcha Script der den erzeugten Code in eine Datenbank schreibt.
    Dieser wird mit der Zeit immer voller.
    Wie bekomme ich den Inhalt der Tabelle nach der Routine gelöscht?

    Tabelle Code - datenbank

    PHP-Code:
    -- 
    -- 
    Tabellenstruktur für Tabelle `Code`
    -- 

    CREATE TABLE `Code` (
      `
    IDint(11NOT NULL auto_increment,
      `
    Codevarchar(6NOT NULL default '',
      `
    AngezeigterCodevarchar(12NOT NULL default '',
      
    PRIMARY KEY  (`ID`)
    TYPE=MyISAM AUTO_INCREMENT=1
    Forumlar

    PHP-Code:
    $DatabaseHost "localhost";
    $DatabaseUser "user";
    $DatabasePassword "password";
    $Database "mydatabase";
    $TableCode "Code";

    $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
    mysql_select_db($Database$DatabasePointer);

    $Buchstaben=array("A""B""C""D""E""F""G""H""K""M"

    "N""P""Q""R""S""T""U""V""W""X""Y");

    $Zahlen=array("2""3""4""5""6""7""8""9");

    for(
    $i=0$Code=""strlen($Code)<6$i++)
    {
        if(
    rand(01)==&& isset($Buchstaben))
        {
            
    $Buchstabe=$Buchstaben[rand(0count($Buchstaben))];
            
    $Code.=$Buchstabe;
            
    $AngezeigterCode.=$Buchstabe." ";
        }
        else
        {
            
    $Zahl=$Zahlen[rand(0count($Zahlen))];
            
    $Code.=$Zahl;
            
    $AngezeigterCode.=$Zahl." ";
        }
    }
    $AngezeigterCode=trim($AngezeigterCode);

    mysql_query("INSERT INTO $TableCode (Code, AngezeigterCode) 
    VALUES ('
    $Code', '$AngezeigterCode')"$DatabasePointer);
    $ID=mysql_insert_id(); 

    Script

    PHP-Code:
    $DatabaseHost "localhost";
    $DatabaseUser "user";
    $DatabasePassword "password";
    $Database "mydatabase";
    $TableCode "Code";

    $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
    mysql_select_db($Database$DatabasePointer);

    $ResultPointer=mysql_query("SELECT Code FROM $TableCode WHERE ID='".$_REQUEST['ID']."'"$DatabasePointer);
    $Result=mysql_fetch_object($ResultPointer);

    if(
    strtolower($_REQUEST['Code']) == strtolower($_REQUEST['EingegebenerCode']))
    {
        
    Inhalt

    }

    else
    {
    echo 
    'Der Code wurde fehlerhaft eingegeben'

    }
    echo 
    'okay'
    Ich hatte schon versucht mit :
    mysql_query("DELETE FROM tabelle WHERE id = $Code");

    am Ende des Scriptes, aber er löscht den Inhalt der Tabelle nicht.

    Danke für eure Hilfe.
    mfg
    Sven
    Zuletzt geändert von Svenoldman; 13.09.2006, 15:25.

  • #2
    Ich hatte schon versucht mit :
    mysql_query("DELETE FROM tabelle WHERE id = $Code");
    Dann haste ja sicher auch das probiert
    PHP-Code:
    error_reporting(E_ALL);
    mysql_query("DELETE FROM tabelle WHERE id = $Code") OR die(mysql_error()); 
    So wie es in unseren Regeln steht. Oder etwa nicht ?

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Da der Code auch Buchstaben enthalten kann, aber die Spalte id vom Typ int ist, wird schon das INSERT fehlschlagen. Demnach wird das WHERE beim DELETE niemals true.
      Ganz abgesehen davon, dass um $Code in den Queries auch ' stehen müßten ...

      Kommentar


      • #4
        Ich vermute mal stark der topicstarter wollte statt $Code lieber $_REQUEST['ID'] verwenden. Wobei dann aber $_GET['id'] der Vorzug gegeben werden sollte.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          error_reporting(E_ALL);
          mysql_query("DELETE FROM tabelle WHERE id = $Code") OR die(mysql_error());
          Okay jahlives, jetzt zeigt er mir die erros an

          Table 'die betreffende Datenbank' doesn't exist

          =
          (Datenbank keine Tabelle mit dem gegebenen Namen existiert)
          hmmmm, seltsam ... die tabelle ist da mit Inhalt (Code)
          wie kann das sein ?


          onemorenerd - ganz steige ich nicht hinter was du meinst ...

          Danke
          mfg
          Sven
          Zuletzt geändert von Svenoldman; 13.09.2006, 18:22.

          Kommentar


          • #6
            onemorenerd - ganz steige ich nicht hinter was du meinst ...
            Tja das ist schade. Aber es liegt an dir, du solltest dich nochmal eingehend mit den Grundlagen von SQL beschäftigen und hier und da mal ein paar Kontrollausgaben in dein Script einbauen. Hast du überhaupt eine Ahnung, was $Code enthält, bevor du es in die Query einbaust? Wohl eher nicht. Dagegen hilft echo $Code; ...
            Und siehe da, $Code enthält nicht nur Zahlen. Ergo ist es ein String und als solcher muß es in SQL mit ' umschlossen werden.

            Aber warum brauchst du für Captchas eigentlich eine Datenbank? Leg den Code in eine Session und gut is!

            Kommentar


            • #7
              Jup, es sind nicht nur Zahlen sondern auch Buchstaben.

              Hast du überhaupt eine Ahnung, was $Code enthält, bevor du es in die Query einbaust? Wohl eher nicht.
              Fehler sind dazu da, damit man sie macht

              Ich hätte meine Bücher doch besser studieren sollen.

              Aber warum brauchst du für Captchas eigentlich eine Datenbank? Leg den Code in eine Session und gut is!
              Das übersteigt zur Zeit meine Kenntnisse.
              Alles brauch seine Zeit.
              Eins weiß ich, da habt ihr auch mal angefangen - gelle
              mfg
              Sven

              Kommentar


              • #8
                Ja haben wir, aber wir haben nie daran gedacht Captcha in eine DB zu speichern ....
                Liebe Grüße,
                SteKoe!

                PHP Tutorials
                Peter Kropff | Quakenet | Schattenbaum.net

                Kommentar


                • #9
                  Ich dachte es wäre sicherer .....
                  Okay ich habs entfernt

                  Formular
                  PHP-Code:
                  $DatabaseHost "localhost";
                  $DatabaseUser "user";
                  $DatabasePassword "password";
                  $Database "mydatabase";
                  $TableCode "Code";

                  $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
                  mysql_select_db($Database$DatabasePointer);

                  ++++++++++++++

                  mysql_query("INSERT INTO $TableCode (Code, AngezeigterCode) 
                  VALUES ('
                  $Code', '$AngezeigterCode')"$DatabasePointer);
                  $ID=mysql_insert_id(); 
                  Script

                  PHP-Code:
                  $DatabaseHost "localhost";
                  $DatabaseUser "user";
                  $DatabasePassword "password";
                  $Database "mydatabase";
                  $TableCode "Code";

                  $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
                  mysql_select_db($Database$DatabasePointer);

                  $ResultPointer=mysql_query("SELECT Code FROM $TableCode WHERE ID='".$_REQUEST['ID']."'"$DatabasePointer);
                  $Result=mysql_fetch_object($ResultPointer); 

                  Jetzt läuft es ohne Datenbank

                  Wenn ich jetzt gehackt werde, habt ihr Schuld - grins

                  Kommentar


                  • #10
                    ich habe lange überlegt, wofür man in db ein zufalsstring reinhaun muss und habe mir kein Antwort gefunden.
                    das gehört vielleicht in session, aber in keinem fall in Datenbank.
                    Oder machst du datamining bei zufals-generierten Strings?
                    Slava
                    bituniverse.com

                    Kommentar


                    • #11
                      Meine Datenbank sollte ja auch was zu tun haben

                      Kommentar


                      • #12
                        Jetzt läuft es ohne Datenbank
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #13
                          Jetzt läuft es ohne Datenbank
                          Es sollte heißen: jetzt läuft es ohne Datenbankeintrag.

                          Ich habe (siehe oben Script) die entsprechenen Zeilen entfernt.
                          Und somit ist meine Frage hinfällig.
                          Ihr habt mich ja überredet, den Schwachsinn rauszunehmen.

                          Kommentar


                          • #14
                            Ohne Datenbank läuft es erst, wenn du alles entfernt hast, was mysql_* heißt.

                            Kommentar


                            • #15
                              Das wollte ich mit meinem --> <-- ausdrücken ..
                              gruss Chris

                              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                              Kommentar

                              Lädt...
                              X