DELETE from *** Where

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

  • DELETE from *** Where

    Ich möchte über ein Eingabeformular Spalten einer Tabelle löschen können. Ich hab mir das so vorgestell:
    Die bestimmte Spalte wird gelöscht, wenn das Passwort und Email der Spalte übereinstimmen, oder wenn Email der bestimmter Spalte und ADMINPASSWORT eingegeben wird.
    Das funzt leider nicht, da ich mich erst seit paar Tagen mit mysql beschäftige. Kann mir jemand Helfen???
    Und dann sollte Meldung ausgegeben werden, wenn der Link gelöscht wurde, doch die meldung kommt wenn man die Seite öffnet
    So schaut der Script aus:
    PHP-Code:
     <?php
    include("data.inc.php");
    $adminpass 'blablabla';    
    $verbindung=mysql_connect($dbserver,$dbuser,$dbpass);
    if (
    $verbindung) { 
        echo 
    "<br>\n";
    } else {
        echo
    "Keine Verbindung.<br>\n";
        echo 
    mysql_errno() . ":" mysql_error() . "<br>\n";
    }

    if(
    mysql_select_db($dbname$verbindung)) 

        echo
    " <br>\n";
    } else {
        echo
    "Datenbank : $dbname konnte nicht ausgewählt werden" "Error.<br>\n";
        echo 
    mysql_errno() . ":" mysql_error() . "<br>\n"
    }
    $query "DELETE FROM LInks  
                                                    WHERE mail = '
    $emai' AND pass = '$pass' OR pass='$adminpass' ";
                                    
    mysql_query($query);
                                    
    mysql_close();
                                    if(
    submit!=" ") echo"Der Link wurde gelöscht";
    ?>

  • #2
    PHP-Code:
    <?php
    include("data.inc.php");
    $adminpass    'blablabla';   
    $verbindung   = @mysql_connect($dbserver,$dbuser,$dbpass);
    if (
    $verbindung) { 
        echo 
    "<br>\n";
    } else {
        echo 
    "Keine Verbindung: ".mysql_errno().":".mysql_error()."<br>\n";
    }

    if(
    mysql_select_db($dbname$verbindung)) { 
        echo 
    "<br>\n";
    } else {
        echo
    "Datenbank: $dbname konnte nicht ausgewählt werden. Error: ".mysql_errno().":".mysql_error()."<br>\n"
    }

    // Ist der Name der Tabelle wirklich LInks und nicht links oder Links?
    $query "DELETE FROM LInks WHERE (mail = '$emai' AND pass = '$pass') OR (mail = '$emai' AND pass='$adminpass')";
    mysql_db_query($dbname,$query,$verbindung);
    mysql_close();

    if(
    $submit != " ") { // Wozu ist denn das da?
        
    echo "Der Link wurde gelöscht<br>\n";
    }
    ?>

    Kommentar


    • #3
      Guck mal ob die Variable um die es in der Query wirklich $emai heißt (und nicht $email).
      Ich versteh jetzt auch nicht ganz was jetzt da genau geschehen soll. Klar, da soll ein Datensatz gelöscht werden aber warum soll das so umständlich gemacht werden?
      Ich hätte jedem Link eine ID (gleichzeitig der Primary Key) die ist ja dann einzigartig und kann dann ganz einfach mit 'ner viel kürzeren SQL-Query gemacht werden.
      "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

      Kommentar


      • #4
        Also das mit emai hatte der Recht gehabt. vertipt
        Und LInks heisst auch Links, noch mal vertipt
        Und leider funktioniert die Sache nicht so ganz.
        Ich kann die Links, mit dem ADMIN Passwort nicht rauslöschen.
        Die Tabelle in der DB heisst Links Email-Spalte mail und Pass-

        Hier ist die Seite:
        http://www.deck-kater.de/bla.php
        --------------------------------------------
        if($submit != " ") { // Wozu ist denn das da?
        echo "Der Link wurde gelöscht<br>\n";
        }

        soll angezeigt werden wen der LInk gelöscht wird. Wird aber irgendwie schon beim Laden der Seite angezeigt.
        -----------------------------------------------
        THX MFG
        Archie
        Zuletzt geändert von archie; 28.03.2002, 20:32.

        Kommentar


        • #5
          Irgendwie mußt Du feststellen, daß das ADMINPWD korrekt ist. Ich weiß nicht, wo es abgelegt ist auf jedenfall kannst Du das sicher ermitteln und überprüfen und eine entsprechende Variable setzen.

          PHP-Code:
          if ($adminpasswortkorrekt "ja") {
             
          $query "DELETE FROM LInks WHERE mail = '$emai'";
          } else {
             
          $query "DELETE FROM LInks WHERE mail = '$emai' AND pass = '$pass'";


          if($submit != " ") { // Wozu ist denn das da?
          echo "Der Link wurde gelöscht<br>\n";
          }

          Logisch wird das immer angezeigt, es wird ja nirgendwo im Skript die Variable auf " " gesetzt.

          Kommentar


          • #6
            Also das Adminpsswort ist im Script abgespeichert
            ---------------------------------------
            $adminpass = 'blablabla';
            ---------------------------------------
            Der löschscript versucht das Passwort aus der DB zu angeln:
            ---------------------------------------
            $query = "DELETE FROM LInks WHERE (mail = '$emai' AND pass = '$pass') OR (mail = '$emai' AND pass='$adminpass')";
            ---------------------------------------
            Deswegen Funzt das auch nicht
            Und ich weiss nicht wie ich das meinem Script erklären kann , dass er das Passwort aus der Zeile( $adminpass = 'blablabla';
            ) rausnehmen soll??
            Und die Meldung wenn der Link gelöscht wird habe ich so realisiert:
            PHP-Code:
            if(!isset($email)) { 
             echo 
            " "
                exit; 
            } else { 
                echo
            "Der Link wurde gelöscht "

            Ist net so ganz klever aber hauptsache funzt
            Zuletzt geändert von archie; 29.03.2002, 11:09.

            Kommentar


            • #7
              PHP-Code:
              <?php
              include("data.inc.php");
              $adminpass 'blablabla';

              function 
              mysql_die($msg) {
                   echo 
              "<b>$msg =&gt;  mysql-error: ".mysql_errno().":".mysql_error()."</b><br>\n";
              }

              if(isset(
              $email)) { 
                  
              $verbindung   mysql_connect($dbserver,$dbuser,$dbpass) or mysql_die("Keine SQL-Verbindung");
                  
              mysql_select_db($dbname$verbindung) or mysql_die("Datenbank konnte nicht ausgewählt werden");

                  if (
              $pass == $adminpass) {
                      
              $query "DELETE FROM Links WHERE mail = '$email'";
                  } else {
                      
              $query "DELETE FROM Links WHERE mail = '$email' AND pass = '$pass'";
                  }
                  
                  if (
              mysql_db_query($dbname,$query,$verbindung)) {
                      echo 
              "Der Link mit EMail <i>$email</i> wurde erfolgreich gelöscht<br>\n";
                  } else {
                      echo 
              "Sorry, aber Link mit EMail <i>$email</i> konnte nicht gelöscht werden<br>\n";
                  }

                  
              mysql_close();
              }
              ?>

              Kommentar


              • #8
                Danke Hand das funzt jezt perfektisch
                Kann ich noch eine Frage stellen? wenn ja dann :
                Ich möchte, dass beim Linksubmit script automatisch eine mail an die angegebene eamil verschickt wird. Das klappt alles soweit, aber die Variablen $email und $pass werden nicht als Werte dieser Variablen übergeben, sondern so, wie die das stehen.
                Was kann das sein?
                Zuletzt geändert von archie; 29.03.2002, 12:38.

                Kommentar


                • #9
                  Die Zuweisung über 'xxx $var yyy' (einfaches Hochkomma) schafft das nicht und muß unterbrochen werden: 'xxx '.$var.' yyy'
                  Bei "xxx $var yyy" würde es klappen.
                  Tausche die beiden Zeilen aus.
                  Code:
                           Emailadresse:  '.$email.'<br>
                           Passwort:  .'$pass.'  <br>
                  Blöde G'schicht

                  Kommentar


                  • #10
                    OK Danke.
                    Zuletzt geändert von archie; 29.03.2002, 13:12.

                    Kommentar

                    Lädt...
                    X