Ankündigung

Einklappen
Keine Ankündigung bisher.

Script PHP, MYSQL UPDATE funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • Script PHP, MYSQL UPDATE funktioniert nicht

    Hallo zusammen,

    ich habe folgedes Script es Ruft Daten aus der Datebank auf und lässt sie in einer Textaria bearbeiten.
    PHP-Code:
    if($_GET["edit"]==1){



    $query = mysql_query("SELECT * FROM aktuelles;");
    $count = mysql_num_rows($query);
    for($i=0;$i < $count; $i++) {
    $query1 = mysql_query("SELECT * FROM aktuelles LIMIT $i, $count;");
    $result = mysql_fetch_object($query1);
        $datenText = $result->text;
        $datenDatum = $result->datum;
        $datenId = $result->id;
    ?>
    Inhalte <? echo $i; ?><br><br>
    <form method="POST" action="formular.php">
        <input name="id" type="hidden" value="<?php echo $datenId?>">
        <input name="text" value="<?php echo $datenText?>"><br>
        <input name="datum" value="<?php echo $datenDatum?>"><br><br>
        <input type=submit name=submit value="Formular absenden">
    </form>
    <?}?>

     <?php

     
     
    if(isset($_POST["text"]) && isset($_GET["edit"]))
     {
       
    $text $_POST["text"];
       
    $datum $_POST["datum"];
       
    $id $_POST["id"];
       
       
       
    //echo("INSERT INTO aktuelles (id, bild, titel, text, datum, aktiv) VALUES ('".$id."', '".$bild."', '".$titel."', '".$text."', '".$datum."', '".$aktiv."')");
       
    mysql_query("UPDATE aktuelles SET bild = '$bild', titel = '$titel', text = '$text', datum = '$datum', aktiv = '$aktiv' WHERE id = '$id';");
     }
     } 
    //aendern schließen
     
    ?> 
     <?
      if($_GET["add"]==1){?>
    <form method="POST" action="formular.php?add=1">
        <input name="text" value="<?php echo $datenText?>"><br>
        <input name="datum" value="<?php echo $datenDatum?>"><br><br>
        <input type=submit name=submit value="Formular absenden">
    </form>
     <?php

     
     
    if(isset($_POST["text"]) && isset($_GET["add"]))
     {
       
    $text $_POST["text"];
       
    $datum $_POST["datum"];
       
       
       
       
    mysql_query("INSERT INTO aktuelles (id, bild, titel, text, datum, aktiv) VALUES ('0', '".$bild."', '".$titel."', '".$text."', '".$datum."', '".$aktiv."')");
      
     }
     }
      
    //normal
      
    ?>
    <a href="?edit=1">bearbeiten</a>
    <a href="?add=1">hinzuf&uuml;gen</a>
    Verbindung und soweiter steht alles. Es können Beiträge hinzugefügt werden aber die Beiträge nicht bearbeitet werden was ist falsch ?

  • #2
    PHP-Code:
    mysql_query("INSERT INTO aktuelles (id, bild, titel, text, datum, aktiv) VALUES ('0', '".$bild."', '".$titel."', '".$text."', '".$datum."', '".$aktiv."')");
    mysql_query("UPDATE aktuelles SET bild = '$bild', titel = '$titel', text = '$text', datum = '$datum', aktiv = '$aktiv' WHERE id = '$id';"); 
    Vergleich doch bitte mal beide Zeilen und sag mir wo der entscheidende Unterschied liegt Als kleiner Tipp es hat mit den Variablen zu tun und sollte durch das Highlighting des Quelltextes durchaus auffallen.

    Davon abgesehen solltest du nicht mehr auf my_sql sondern auf my_sgli oder noch besser PDO setzen. Denn my_sql ist veraltet. Ebenfalls ist dein Code anfällig für SQL Injection. Niemals User Eingaben ungeprüft verwenden.

    Kommentar


    • #3
      Ja es sind nur text und Datum belegt..aber mehr wollte ich zum testen nicht belegen ist ja nicht weiter schlimm oder ?

      Kommentar


      • #4
        Schau dir bitte man die Farben im Code an. Es hat meistens seine Gründe wenn etwas einmal Blau und einmal Rot gehighlightet ist. Es geht hier nicht darum das du nur zwei Variablen verwendest sondern darum das du einmal im Ergebnis gar keine Variablen sondern einen string verwendest.

        Kommentar


        • #5
          Die Punkte sind oben bei den Variablen ja ?

          Hä ich stehe gerade voll auf dem Schlauch.

          Kommentar


          • #6
            Ok also:

            PHP-Code:
            mysql_query("INSERT INTO aktuelles (id, bild, titel, text, datum, aktiv) VALUES ('0', '".$bild."', '".$titel."', '".$text."', '".$datum."', '".$aktiv."')"); 
            mysql_query("UPDATE aktuelles SET bild = '".$bild."', titel = '".$titel."', text = '".$text."', datum = '".$Datum."', aktiv = '".$aktiv."' WHERE id = '".$id."';"); 

            und jetzt schau bitte mal wo der unterschied zu deinem Code ist.

            Kommentar


            • #7
              Habs jetzt selber gelöst war nicht das was du beschrieben hattest sondern hier
              PHP-Code:
              <form method="POST" action="formular.php?edit=1"
              das edit fehlte...Danke trotztdem

              Kommentar


              • #8
                Du solltest den Rat von Tessa dennoch beherzigen

                EDIT:

                Besonders das mit mysqli und PDO.
                - Laravel

                Kommentar


                • #9
                  Zitat von TessaKavanagh Beitrag anzeigen
                  Schau dir bitte man die Farben im Code an. Es hat meistens seine Gründe wenn etwas einmal Blau und einmal Rot gehighlightet ist. Es geht hier nicht darum das du nur zwei Variablen verwendest sondern darum das du einmal im Ergebnis gar keine Variablen sondern einen string verwendest.
                  Dir ist schon klar dass Variablen in doppelten Anführungszeichen ersetzt werden, oder?

                  Kommentar

                  Lädt...
                  X