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

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

  • 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

    Kommentar


    • #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>

      Kommentar


      • #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

        Kommentar


        • #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.

          Kommentar


          • #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

            Kommentar


            • #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.
              Zuletzt geändert von Moji; 15.04.2012, 21:58.

              Kommentar


              • #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());
                }
                }

                Kommentar


                • #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]

                  Kommentar


                  • #10
                    Zitat von AmicaNoctis Beitrag anzeigen
                    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.

                    Kommentar


                    • #11
                      Zitat von wahsaga Beitrag anzeigen
                      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]

                      Kommentar

                      Lädt...
                      X