Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler finden

Einklappen

Neue Werbung 2019

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

  • Fehler finden

    Ok, ich habe hier noch ein Problem an die Ehrfahreneren unter uns

    PHP gibt hier keine Fehlermeldung raus, sond löscht die Daten einfach nicht .. Wie könnte ich das anders machen, oder was muss ich anders machen damit dieses Programm funktioniert :

    <?php
    define('MYSQL_HOST', 'localhost');
    define('MYSQL_USER', 'root');
    define('MYSQL_PASS', '');
    define('MYSQL_DB', 'test');

    mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) OR die("Fehler: ".mysql_error());
    mysql_select_db(MYSQL_DB) OR die("Fehler: ".mysql_error());

    $anzahl = 1;
    $alles = "SELECT ID, Name, Alteer, Hobby, Beruf FROM auslesen";
    $weiter = mysql_query($alles);

    echo "<form action=schmeiss.php method=post>";

    echo "<table border=2><tr><td><b> Nr. </b></td><td><b> Name </b></td><td><b> Alter </b></td><td><b> Hobby </b></td><td><b> Beruf </b></td><td><b>löschen</b></td></tr>";

    while($fertig = mysql_fetch_assoc($weiter))
    {
    $id = $fertig['ID'];
    echo "<tr><td>&nbsp;";
    echo $anzahl;
    echo "&nbsp;</td><td>&nbsp;";
    echo $fertig['Name'];
    echo "&nbsp;</td><td>&nbsp;";
    echo $fertig['Alteer'];
    echo "&nbsp;</td><td>&nbsp;";
    echo $fertig['Hobby'];
    echo "&nbsp;</td><td>&nbsp;";
    echo $fertig['Beruf'];
    echo "&nbsp;</td><td>&nbsp;";
    echo "<input type=checkbox name=$id>";
    echo "&nbsp;</td></tr>&nbsp;";

    $anzahl++;
    }

    echo "</table>";

    echo "<input type=submit value='entgültig löschen'>";
    echo "</form>";

    echo "<a href=start.html>Zurück zum Formular</a>";



    ?>
    Das ist die Auswahl

    <?php
    define('MYSQL_HOST', 'localhost');
    define('MYSQL_USER', 'root');
    define('MYSQL_PASS', '');
    define('MYSQL_DB', 'test');

    mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) OR die("Fehler: ".mysql_error());
    mysql_select_db(MYSQL_DB) OR die("Fehler: ".mysql_error());


    $löschen = "DELETE FROM auslesen WHERE ID = $_POST[$id]";

    mysql_query($löschen);

    echo "<p align=center>";
    echo "Datensätze gelöscht!<br>";
    echo "<a href=start.html>Zurück zum Formular</a>";

    ?>
    Und hier sollte es gelöscht werden .. Er führt alles aus ind ich habs auch schon mit get probiert, er schickt die Daten .. DAher vermute ich mal so, das der FEhler in schmeiss.php, dem zweiten liegt vermutlich bei $löschen weil mit $_POST[] keine variabe empfangen werden kann oder so ... ICh hab aber keine Ahnung, deswegen frag ich euch

    Danke Spacedone

  • #2
    Hi,
    lass dir doch mal den MYSQL Fehler anzeigen:
    PHP-Code:
    mysql_query($löschen) or die(mysql_error()); 

    Kommentar


    • #3
      Peinlich das ich da nicht sleber dran gedacht hab

      Na gut der FEhler lautet :

      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 '' at line 1
      Hilft das weiter??

      Kommentar


      • #4
        Versuchs mal damit, dass du deine Variablen nicht mit umlauten benennst, da dies zu problemen führen kann, wenn die Datein nicht mit dem richtigen Zeichensatz gespeichert wurden.

        Kommentar


        • #5
          ok ich hab löschen jetzt weg genannt der Fehler ist aber immer noch da ...

          Kommentar


          • #6
            Versuch mal dein Query folgendermaßen:
            PHP-Code:
                 $loeschen 'DELETE FROM auslesen WHERE ID = '.$_POST[$id]; 
            Außerdem: heißt die Spalte in deiner Tabelle wirklich "ID" also komplett groß geschrieben?

            Kommentar


            • #7
              ja genau so heisst die

              Kommentar


              • #8
                Das klappt immer noch nicht ... Immer noch der Selbe Fehler

                Kommentar


                • #9
                  Sollte es nicht des weitern $_POST['id'] heißen, da du ja in schmeiss.php keine Variable $id hast und du ja auf die übergebene id zugreifen willst?

                  Kommentar


                  • #10
                    Auch dklappt nicht immer noch der selbe Fehler

                    Kommentar


                    • #11
                      Dann mach doch mal ein echo $loeschen, damit du siehst, wie dein query aussieht. Daran solltest du ziemlich schnell erkennen, wo der Fehler liegt.

                      Kommentar


                      • #12
                        Code:
                        <?php
                            define('MYSQL_HOST', 'localhost');
                            define('MYSQL_USER', 'root');
                            define('MYSQL_PASS', '');
                            define('MYSQL_DB',   'test');
                        
                            mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) OR die("Fehler: ".mysql_error());
                            mysql_select_db(MYSQL_DB) OR die("Fehler: ".mysql_error());
                            
                            
                            $loeschen = "DELETE FROM auslesen WHERE ID = ".$_POST[$id];
                        mysql_query($loeschen) or die(mysql_error());  
                            mysql_query($löschen);
                                
                            echo "<p align=center>";
                            echo "Datensätze gelöscht!<br>"; 
                            echo "<a href=start.html>Zurück zum Formular</a>";
                        ?>
                        Ist die Postvariable richtig gesetzt ?
                        Die $_POST[] Variable nicht direkt in den query-string schreiben.
                        Ausserdem ist in deinem beispiel die Variable $id gar nicht gesetzt, d.h. es wird vresucht auf $_POST[''] zuzugreifen und der query lautet demnach

                        "DELETE FROM auslesen WHERE ID = "

                        Wäre $id z.B. 5 würde auf $_POST[5] zugegriffen. willst du auf die POST-variable Namens "id" zugreifen, sollte es

                        .$_POST['id'];

                        heissen

                        ausserdem würde ich nicht die $_POST variable einfach so an meine Datenbank lassen, denn die "id" Variable könnte einen Inhalt wie "5 OR 1=1" enthalten, womit dein query so aussieht:

                        "DELETE FROM auslesen WHERE ID = 5 OR 1=1"

                        Kommentar


                        • #13
                          die ID ist auto Increment warum sollte sie dann 5 OR 1=1 enthalten ???

                          Na ja, wenn cih jetzt mein $weg auslese kommt da :

                          DELETE FROM auslesen WHERE ID =
                          Demnach bekommt er die Variable gar nicht erst oder versteht nich was er da bekommen soll .. Wie gesagt $_POST['id'] klappt auch nicht Noch andere Ratschläge Ich weiss nicht weiter

                          Kommentar


                          • #14
                            Ich denke mal es liegt daran, dass du die ID gar nicht zu schmeiss.php übergibst.
                            Ich schätze mal du versuchst die id über die Checkboxen zu übergeben.
                            Dein Versuch sieht so aus:
                            echo "<input type=checkbox name=$id>";
                            Allerdings funktioniert das so nicht...
                            Die Checkboxen müssen alle den selben namen aber unterschiedliche values haben.
                            Das sieht dann so aus:
                            PHP-Code:
                            echo '<input type="checkbox" name="id" value="'.$id.'" />'
                            Dann ist $_POST['id'] in der schmeiss.php ein Array über alle ids die angeklickt wurden.
                            Darüber musst du dann eine Schleife laufen lassen und jeweils den entsprechenden query ausführen.

                            Kommentar


                            • #15
                              DANKE!!! ES HAT GEKLAPPT!!

                              Hier noch ein mal den ganzen Queltext wei es richtig war :

                              schmeiss.php :
                              PHP-Code:
                              <?php
                                  define
                              ('MYSQL_HOST''localhost');
                                  
                              define('MYSQL_USER''root');
                                  
                              define('MYSQL_PASS''');
                                  
                              define('MYSQL_DB',   'test');

                                  
                              mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) OR die("Fehler: ".mysql_error());
                                  
                              mysql_select_db(MYSQL_DB) OR die("Fehler: ".mysql_error());
                                  
                                  
                                  
                              $weg "DELETE FROM auslesen WHERE ID = " .$_POST['id'];

                                  echo 
                              $weg ."<br>";

                                  
                              mysql_query($weg) OR die(mysql_error());
                                      
                                  echo 
                              "<p align=center>";
                                  echo 
                              "Datensätze gelöscht!<br>"
                                  echo 
                              "<a href=start.html>Zurück zum Formular</a>";

                              ?>
                              weg.php :
                              PHP-Code:
                              <?php
                                  define
                              ('MYSQL_HOST''localhost');
                                  
                              define('MYSQL_USER''root');
                                  
                              define('MYSQL_PASS''');
                                  
                              define('MYSQL_DB',   'test');

                                  
                              mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) OR die("Fehler: ".mysql_error());
                                  
                              mysql_select_db(MYSQL_DB) OR die("Fehler: ".mysql_error());
                                  
                                  
                              $anzahl 1;
                                  
                              $alles "SELECT ID, Name, Alteer, Hobby, Beruf FROM auslesen";
                                  
                              $weiter mysql_query($alles);
                                  
                                  echo 
                              "<form action=schmeiss.php method=post>";    

                                  echo 
                              "<table border=2><tr><td><b> Nr. </b></td><td><b> Name </b></td><td><b> Alter </b></td><td><b> Hobby </b></td><td><b> Beruf </b></td><td><b>löschen</b></td></tr>";

                                  while(
                              $fertig mysql_fetch_assoc($weiter))
                                  {
                                      
                              $id $fertig['ID'];
                                      echo 
                              "<tr><td>&nbsp;";
                                      echo 
                              $anzahl;
                                      echo 
                              "&nbsp;</td><td>&nbsp;";
                                      echo 
                              $fertig['Name'];
                                      echo 
                              "&nbsp;</td><td>&nbsp;";
                                      echo 
                              $fertig['Alteer'];
                                      echo 
                              "&nbsp;</td><td>&nbsp;";
                                      echo 
                              $fertig['Hobby'];
                                      echo 
                              "&nbsp;</td><td>&nbsp;";
                                      echo 
                              $fertig['Beruf'];
                                      echo 
                              "&nbsp;</td><td>&nbsp;";
                                      echo 
                              "<input type=checkbox name=id value='$id'>";
                                      echo 
                              "&nbsp;</td></tr>&nbsp;";
                                      
                                      
                              $anzahl++;
                                  }
                                  
                                  echo 
                              "</table>";
                                  
                                  echo 
                              "<input type=submit value='entgültig löschen'>";
                                  echo 
                              "</form>";

                                  echo 
                              "<a href=start.html>Zurück zum Formular</a>";

                                  
                                  
                              ?>
                              Noch mal danke!

                              Kommentar

                              Lädt...
                              X