Datensatz löschen

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

  • Datensatz löschen

    habe folgendes Script geschrieben:

    <html>
    <form action="<?=$PHP_SELF?>" method="post">
    <p>ID der zu l&ouml;schenden News:<br />
    <textarea name="delete_news" rows="5" cols="5" wrap>
    </textarea><br />
    <input type="submit" name="loeschen" value="L&ouml;schen" />
    </p>
    </form>
    <a href="index.php">Index</a>
    </html>

    <?php
    include("config.php");

    $connect= @mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname,$connect);
    if ($loeschen == "L&ouml;schen") {
    $sql = "DELETE FROM news WHERE ID=$delete_news";
    if (@mysql_query($sql))
    echo "News gel&ouml;scht";
    else
    echo "PECH GEHABT, FEHLER IM SCRIPT!!!";
    }
    exit();
    ?>

    ich hab keine ahnung, warum es nicht funzt. ichhab es mir schon ein paar mal durchgelesen und finde keinen fehler. Mein server bringt mir auch keine Fehlermeldung, noch wertet er mir einen echo befehl aus. kann mir einer helfen?

  • #2
    1. Du arbeitest mit register_globals = on -> das is nich gut.
    2. frage nicht den wert des buttons ab, wenn Du den änderst is deine abfrgae auch weg
    3. ne ID in einer Textarea??? wasn Das?
    4. benutze mal mysql_error()
    5. das @verhindert die ausgabe wichtiger informationen und sollte nur benutzt werden wenns absolut gewollt ist und nicht nur aus schönheitsgründen
    6. benutze nicht <?= sondern <?php echo
    7. $PHP_SELF siehe 1.
    etc.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ich hab keine ahnun, was register globals = on bedeudet.
      in meinem buch steht, dass ich das so schreiben soll.
      ich denke, dass das so funktionieren soll:

      zahl in Textarea => zahl wird in script übertragen
      wenn klick auf löschen => lösche datensatz mit der in Textarea eingefügten nummer.

      Kommentar


      • #4
        dann kauf Dir mal ein neues Buch
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          die sind teuer und ich hab keine ahnung, welches gut und leicht zu verstehen ist.

          Kommentar


          • #6
            von Hanser 49,90 oder einfach nur das manual lesen
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              ich will aber jetzt wissen, was ich falsch gemacht hab und nicht erst in 5 wochen, wenn ich genug kohle zusammgekratzt hab, damit ich mir das buch kaufen kann und meinen fehler immer noch nicht finde.

              Kommentar


              • #8
                PHP-Code:
                <?php
                if(isset("loeschen"))
                 {
                 include(
                "config.php");
                 
                $connect = @mysql_connect($dbserver$dbuser$dppass);
                 
                mysql_select_db("$dbname$connect");
                 
                $sql "DELETE FROM news WHERE ID = $delete_news";
                 if (@
                mysql_query($sql))
                  {
                  echo 
                'News geloescht';
                  }else{
                  echo 
                'Pech gehabt, Fehler im Script!';
                  }
                 }else{
                 echo 
                '<html>
                       <form action="'
                .$PHP_SELF.'" method="post">
                       <input type="text" size="25" name="delete_news" value="ID der zu l&ouml;schenden News">
                       <input type="submit" name="loeschen" value="Löschen" />
                       </form>
                       <a href="index.php">Index</a>
                       </html>'
                ;
                 }
                ?>
                mist. da is irgendwo ein fehler...
                wart mal
                Zuletzt geändert von Enzio; 29.11.2003, 16:31.

                Kommentar


                • #9
                  Original geschrieben von Enzio
                  mist. da is irgendwo ein fehler...
                  wenn du die @'s wegmachst und mysql_error() verwenden würdest, könntest du deine suche verkürzen.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                     
                    include("config.php");
                     
                    $connect mysql_connect($dbserver$dbuser$dppass);
                     
                    mysql_select_db("$dbname$connect");
                     
                    $sql "DELETE FROM news WHERE ID = $delete_news";
                     if (
                    mysql_query($sql))
                      {
                      echo 
                    'News geloescht';
                      }else{
                      echo 
                    'Pech gehabt, Fehler im Script!';
                      }
                     }else{
                     echo 
                    '<html>
                           <form action="'
                    .$PHP_SELF.'" method="post">
                           <input type="text" size="25" name="delete_news" value="ID der zu l&ouml;schenden News">
                           <input type="submit" name="loeschen" value="Löschen" />
                           </form>
                           <a href="index.php">Index</a>
                           </html>'
                    ;
                     }
                    ?>

                    Parse error: parse error, unexpected '}' in D:\xampp\htdocs\test\loeschen.php on line 12

                    Kommentar


                    • #11
                      da fehlt ein if! Zähl mal deine Klammern!

                      Kommentar


                      • #12
                        PHP-Code:
                        <form action="<?=$PHP_SELF?>" method="post">
                        <input name="delete_news" size=25 value='ID'>
                        <input type='submit' name='loesch_button' value='Löschen'>
                        </form>


                        <?php
                        include("config.php");

                        $connect= @mysql_connect($dbserver,$dbuser,$dbpass);
                        mysql_select_db($dbname,$connect);
                        if (
                        $loesch_button == "Löschen") {
                          
                        $sql "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
                                  if (
                        mysql_query($sql)){ 
                                  echo 
                        "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
                                  
                        header("refresh:3;url=index.php");
                                  }
                                  else{
                                  echo 
                        "PECH GEHABT, FEHLER IM SCRIPT!!!";
                                  }
                                  }
                        exit();
                        ?>
                        hab es so noch mal probiert. geht aber auch nicht

                        Kommentar


                        • #13
                          dann gewöhn dir mal bitte an, ordentlich zu verschachteln, dann siehts du das auch!

                          PHP-Code:
                          <?php
                          include("config.php");

                          $connect= @mysql_connect($dbserver,$dbuser,$dbpass);
                          mysql_select_db($dbname,$connect);
                          if (
                          $loesch_button == "Löschen") {
                            
                          $sql "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
                              if (
                          mysql_query($sql)) { 
                                echo 
                          "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
                                
                          header("refresh:3;url=index.php"); #was soll das denn sein?
                              
                          } else {
                                echo 
                          "PECH GEHABT, FEHLER IM SCRIPT!!!"# wieso eigentlich im script? und nicht im mysql?
                              
                          }
                            } 
                          # das ist die letzte klammer. die müsste aber auf erster 
                              # und nicht auf zweiter ebene sein!
                          exit(); # n exit am ende des scriptes? sinn?
                          ?>

                          Kommentar


                          • #14
                            Was hat das verschachteln mit der funktionstüchtigkeit des scriptes zu tun? wenn ich wollte, könnte ich alles in eine zeile schreiben:


                            PHP-Code:
                            <?php
                            include("config.php");

                            $connect= @mysql_connect($dbserver,$dbuser,$dbpass);
                            mysql_select_db($dbname,$connect);
                            if (
                            $loesch_button == "Löschen") {
                              
                            $sql "DELETE FROM 'news' WHERE 'ID'= '$delete_news'";
                                if (
                            mysql_query($sql)) { 
                                  echo 
                            "News gelöscht. Weiterleitung erfolgt in 3 Sekunden. Bitte warten";
                                  
                            header("refresh:3;url=index.php"); #nach 3 sek wird man automatish nach index.php weitergeleitet
                                
                            } else {
                                  echo 
                            "PECH GEHABT, FEHLER IM SCRIPT!!!"#ist mir eigentlich wurscht wo der fehler ist. wichtig ist nur, dass ein fehler da ist
                                
                            }
                              } 
                            # ob die klammer auf 2. oder 3 oder 1 ebenen ist, spielt für das script selbst keine rolle, nur für den betrachter.    # und nicht auf zweiter ebene sein!
                            exit(); # n exit am ende des scriptes? sinn? => ka steht in meinem BUCH
                            ?>

                            Kommentar


                            • #15
                              dann würdest du aber vermutlich nochspäter checken, dass du eine klammer zu wenig hast!!!

                              BTW: Mellos Tipps berücksichtigst du auch nicht.

                              Kommentar

                              Lädt...
                              X