Bereits eingetragene Datensätze aus Datenbank auslesen und verändern.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bereits eingetragene Datensätze aus Datenbank auslesen und verändern.

    Hallo liebe Community,

    ich bin recht neu unterwegs in Sachen php,html,mysql.
    Ich habe eine Kontaktdatenbank erstellt in die man sich mittels Formular eintragen kann,
    dieser Eintrag wird dann in meiner MySQL Datenbank gespeichert und wieder in einer Tabelle angezeigt.

    Kontaktdatenbank

    Mein Problem:
    Ich würde jetzt gerne über einen Link "Edit" einen bestimmten Datensatz editieren.
    Sprich das, wenn man auf den Link hinter dem Kontakt klickt,
    sich die Formular Seite neu öffnet mit dem Datensatz in den Feldern,
    damit man ihn ändern kann. Habe mir schon viele Tutorials durchgelesen und Möglichkeiten doch irgendwie noch nicht zu einer Lösung gekommen.
    Denn wie schaff ich es das der Link über Edit weiß,
    welcher Datensatz gemeint ist...

    Hoffe ihr könnt mir helfen.

  • #2
    Übergib die ID des Datensatzes per GET-Parameter. Also z.B. echo '<a href="deine_datei.php?edit='.$id.'">edit</a>';. Dann kannst du die Daten über den Wert $_GET['id'] auslesen.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Comment


    • #3
      Danke Schon mal für die schnelle Antwort.
      Hab ich ausprobiert jedoch hab ja ich für die Variable $id ja kein wert festgelegt,
      wie frage ich das von der Datenbank ab?
      mein link sieht so aus:
      http://joachimalder.byto.de/Kontaktdatenbank3/editieren.php?edit=.$id.

      am ende müsste ja aber dann die Id Definiert sein oder?

      mein link im Script:

      <td><a href="editieren.php?edit=.$id."><img src=http://www.usedprice.com/images/button_edit_grey.gif></td>

      Comment


      • #4
        Du listet doch die Einträge auf, oder? Dann must du sie dir ja vorher aus der Datenbank geholt haben. Gibt es denn in der entsprechenden Tabelle kein Feld mit AUTO_INCREMENT als PRIMARY KEY?

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #5
          Ja ich Liste die Einträge auf:
          PHP Code:
          <td><a href=><?=$into['Vorname']?></td>
            <td><a href=><?=$into['Nachname']?></td>
            <td><a href=><?=$into['Adresse']?></td>
            <td><a href=><?=$into['Email']?></td>
            <td><a href=><?=$into['Tel']?></td>
            <td><a href=><?=$into['Internetseite']?></td>
            <td><a href=><?=$into['Fax']?></td>
            <td><a href="editieren.php?edit=.$ID."><?=$into['ID']?><img src=http://www.usedprice.com/images/button_edit_grey.gif></td>
            </tr>
          So sieht die Auflistung aus der letzte Link ist der Edit button.

          Die Spalte ID ist mit Auto_INCREMENT und gleichzeitig die Spalte wo der Edit Button sich befindet.

          Comment


          • #6
            PHP Code:
            <a href="editieren.php?edit=<?php echo $ID;?>">
            Das hätte dir aber selber auffallen müssen.

            Peter

            Btw: ein paar Grundlagen könnten dir nicht schaden.
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Comment


            • #7
              Vielen dank des hab ich komplett übersehen ...und ja Grundlagen fehlen noch an jeder Ecke bin noch nicht so lang dabei.
              Dank deiner Hilfe bin ich aber jetzt ein gutes Stück weiter ich mach für heute Schluss, ich hoffe das Ich es jetzt ohne Hilfe zu Ende Schaff.
              Last edited by Moji; 15-04-2012, 20:58.

              Comment


              • #8
                So dank eurer Hilfe bin ich schon viel weiter gekommen.
                Wenn man jetzt bei meiner Kontaktdatenbank auf den Edit Button klickt
                kommt man auf das Editieren Formular
                und hat, da bereits die vorher eingegebenen Daten in den Feldern stehen. Wenn man diese jetzt ändern will, kommt man wieder zur Übersicht,
                dort sollte jetzt eigentlich der veränderte Kontakt stehen,
                stat dessen kriege ich die Fehler Meldung "Query was empty".
                So sieht mein Update Script aus.
                Ich finde einfach den Fehler nicht hoffe ihr könnt mir helfen.

                PHP Code:
                <?php
                error_reporting
                (E_ALL);
                ini_set("display_errors""1");

                if(isset(
                $_POST['Edit'])){    
                    
                $Vorname $_POST ['Vorname'];
                $Nachname $_POST ['Nachname'];
                $Adresse $_POST ['Adresse'];
                $Email $_POST ['Email'];
                $Tel $_POST ['Tel'];
                $Internetseite $_POST ['Internetseite'];
                $Fax $_POST ['Fax'];




                $sql mysql_query("UPDATE test SET
                Vorname="
                .$Vorname.",
                Nachname="
                .$Nachname.",
                Adresse="
                .$Adresse.",
                Email="
                .$Email.",
                Tel="
                .$Tel.",
                Internetseite="
                .$Internetseite.",
                Fax="
                .$Fax."

                WHERE 
                ID = '1'

                "
                );

                    if (
                mysql_query($sql)) {
                    echo 
                "Daten wurden erfolgreich upgedated!";
                }
                else {
                    die(
                mysql_error());
                }
                }

                Comment


                • #9
                  Hallo,

                  gerade als Anfänger solltest du nicht erst mit der uralten mysql-Erweiterung herumprobieren. Damit kann man ungewollt große Sicherheitslücken aufreißen und schnell Fehler machen. Stattdessen empfehle ich dir, PDO zu nutzen und mit Prepared Statements zu arbeiten.

                  In deinem Statement fehlen jedenfalls die Anführungszeichen und das Escaping der Werte. Um beides brauchst du dir bei Prepared Statements keine Gedanken zu machen.

                  Gruß,

                  Amica
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Comment


                  • #10
                    Originally posted by AmicaNoctis View Post
                    In deinem Statement fehlen jedenfalls die Anführungszeichen und das Escaping der Werte.
                    Was den genannten Fehler auslöst, ist aber erst mal das doppelte Absenden der Query
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Comment


                    • #11
                      Originally posted by wahsaga View Post
                      Was den genannten Fehler auslöst, ist aber erst mal das doppelte Absenden der Query
                      Ähm, ja. Das passt auch besser zu der Fehlermeldung, ist mir aber nicht gleich aufgefallen. Das wäre mit PDO übrigens auch nicht passiert, wenn die IDE Autosuggestion anbietet.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Comment

                      Working...
                      X