Ankündigung

Einklappen
Keine Ankündigung bisher.

geänderte Datensätze werden nicht zurück zur Datenbank gesendet

Einklappen

Neue Werbung 2019

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

  • geänderte Datensätze werden nicht zurück zur Datenbank gesendet

    Hey Leute,

    ich bin neu hier und bräuchte mal Hilfe

    Ich habe eine Datenbank angelegt (class) mit einer Tabelle (student).
    Ich habe es hinbekommen mit einem Formular, welches ich mit PHP bearbeitet habe, die eingegeben Daten an die Datenbank zu senden (Form.php).
    Die Datensätze in der DB werden mit "dbTabelle.php" angezeigt wo ich auch einen "bearbeiten" Button hinzugefügt habe.
    Den Button habe ich mit der "bearbeiten.php" verknüpft wo ich den ausgewählten Datensatz ändern kann.
    Durch das klicken auf den "Abschicken"-Button sollten eigentlich die geänderten Daten an die DB gesendet werden und genau das ist hier mein problem.
    Ich habe vieles versucht, jedoch nicht geschafft das zum laufen zu bringen.

    Vielleicht habe ich ja ein Anfänger Fehler und merk das nicht
    Wäre nett wenn einer mir dabei Hilft

    Danke im Voraus!


    Peter



    Form.php - Formular der die eingegeben Datensätze an die DB schickt
    PHP-Code:

    <?php
    $link 
    mysqli_connect("localhost""root","") or die ("Verbindung nicht möglich");
    mysqli_select_db($link"class") or die ("Datenbank existiert nicht");



    isset(
    $_POST['vorname']) ? $vorname  $_POST['vorname']  : $vorname  null;
    isset(
    $_POST['nachname'])? $nachname $_POST['nachname'] : $nachname null;
    isset(
    $_POST['nickname'])? $nickname $_POST['nickname'] : $nickname null;
    isset(
    $_POST['gjahr'])  ? $gjahr    $_POST['gjahr']  : $gjahr   null;


    if (!
    is_null($vorname) &&  !is_null($nachname) &&  !is_null($nickname) && !is_null($gjahr)) {
        
    $result mysqli_query($link"INSERT INTO `student` (vorname, nachname, nickname, gjahr)  
        VALUES ('
    $vorname', '$nachname', '$nickname', '$gjahr')");
    }



    mysqli_close($link);
    ?>

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>HTML to XML (add)</title>
    </head>
    <body>

    <form action="form.php" method="post">
        <table align="center">
            <tr>
                <td>Vorname:      </td><td><input type="text" name="vorname" placeholder="Max" required oninvalid="this.setCustomValidity('Bitte Vornamen eingeben!')" oninput="setCustomValidity('')"></td>
            </tr>
            <tr>
                <td>Nachname:     </td><td><input type="text" name="nachname" placeholder="Mustermann" required oninvalid="this.setCustomValidity('Bite Nachnamen eingeben!')" oninput="setCustomValidity('')"></td>
            </tr>
            <tr>
                <td>Nickname:     </td><td><input type="text" name="nickname" placeholder="MaxM123" required oninvalid="this.setCustomValidity('Bitte Nickname eingeben!')" oninput="setCustomValidity('')"></td>
            </tr>
            <tr>
                <td>Geburtsdatum: </td><td><input type="date" name="gjahr" required oninvalid="this.setCustomValidity('Bitte Geburtsdatum angeben!')" oninput="setCustomValidity('')"></td>
            </tr>
            <tr>
                <td></td>         <td><input type="submit" name="send" value="senden"></td>
            </tr>
        </table>
    </form>


    </body>
    </html>


    dbTabelle.php - Die Tabelle wo meine Datensätze angezeigt werden
    PHP-Code:

    <?php

    $link 
    mysqli_connect("localhost""root","") or die ("Verbindung nicht möglich");
    mysqli_select_db($link"class") or die ("Datenbank existiert nicht");


    $result mysqli_query($link"SELECT * FROM student") or exit("Fehler im SQL-Kommand");



        echo 
    "<table align='center' border='1'>\n";
        echo 
    "<tr>";
        echo 
    '<th>&nbsp;ID&nbsp;</th>';
        echo 
    '<th>&nbsp;Vorname&nbsp;</th>';
        echo 
    '<th>&nbsp;Nachname&nbsp;</th>';
        echo 
    '<th>&nbsp;Nickname&nbsp;</th>';
        echo 
    '<th>&nbsp;Geburtsdatum&nbsp;</th>';
        echo 
    '<th></th>';
        echo 
    '</tr>';
        while (
    $row=mysqli_fetch_row($result))
        {
            echo 
    '<tr>';
            foreach (
    $row as $item)
                echo 
    "<td>$item</td>";
            echo 
    "<td><a href="bearbeiten.php?id=$row[0]">bearbeiten</td>";
            echo 
    "</tr>\n";
        }
        echo 
    "</table>\n";



    mysqli_close($link);

    ?>


    bearbeiten.php - Wo ich den ausgewählten Datensatz ändern kann
    PHP-Code:
    <?php

    $link 
    mysqli_connect("localhost""root","") or die ("Verbindung nicht möglich");
    mysqli_select_db($link"class") or die ("Datenbank existiert nicht");

    $result mysqli_query($link"SELECT * FROM student WHERE sid=$_GET[id]") or exit("Fehler im SQL-Kommand");


    if (
    $row=mysqli_fetch_row($result))
    {
        echo 
    "<form method="post" action="dbTabelle.php">\n";
        echo 
    "<table align='center'>";
        echo 
    "<tr>";
        echo 
    "<td>SID:           </td><td><input type="text" name="sid" readonly value="$row[0]">\n</td>";
        echo 
    "</tr>";
        echo 
    "<tr>";
        echo 
    "<td>Vorname:      </td><td><input type="text" name="vorname" value="$row[1]">\n</td>";
        echo 
    "</tr>";
        echo 
    "<tr>";
        echo 
    "<td>Nachname:     </td><td><input type="text" name="nachname" value="$row[2]">\n</td>";
        echo 
    "</tr>";
        echo 
    "<tr>";
        echo 
    "<td>Nickname:     </td><td><input type="text" name="nickname" value="$row[3]">\n</td>";
        echo 
    "</tr>";
        echo 
    "<tr>";
        echo 
    "<td>Geburtsdatum: </td><td><input type="text" name="gjahr" value="$row[4]">\n</td>";
        echo 
    "</tr>";
        echo 
    "<tr>";
        echo 
    "<td></td><td><input type="submit" name="submit_eingabemaske" value="Abschicken">\n</td>";
        echo 
    "</tr>";
        echo 
    "</form>\n";
    } else {
        echo 
    "Fehler: SID $_GET[sid] nicht vorhanden\n";
    }


    mysqli_close($link);

    ?>


    sendData.php - Womit eigentlich die geänderten Datensätze wieder an die DB gesendet werden sollen
    PHP-Code:

    <?php

    $link 
    mysqli_connect("localhost""root","") or die ("Verbindung nicht möglich");
    mysqli_select_db($link"class") or die ("Datenbank existiert nicht");

    if (isset(
    $_POST[submit_eingabemaske])) {

        
    mysqli_query($link"UPDATE student SET vorname='$_POST[vorname]', nachname='$_POST[nachname]', nickname='$_POST[nickname]', gjahr='$_POST[gjahr]' WHERE sid=$_POST[sid]") or exit("Fehler im SQL-Kommand");
    }


    $result mysqli_query($link"SELECT * FROM student") or exit("Fehler im SQL-Kommand");

    echo 
    "<table align='center' border='1'>\n";
    echo 
    "<tr>";
    echo 
    '<th>&nbsp;ID&nbsp;</th>';
    echo 
    '<th>&nbsp;Vorname&nbsp;</th>';
    echo 
    '<th>&nbsp;Nachname&nbsp;</th>';
    echo 
    '<th>&nbsp;Nickname&nbsp;</th>';
    echo 
    '<th>&nbsp;Geburtsdatum&nbsp;</th>';
    echo 
    '<th></th>';
    echo 
    '</tr>';
    while (
    $row=mysqli_fetch_row($result))
    {
        echo 
    '<tr>';
        foreach (
    $row as $item)
            echo 
    "<td>$item</td>";
        echo 
    "<td><a href="bearbeiten.php?id=$row[0]">bearbeiten</td>";
        echo 
    "</tr>\n";
    }
    echo 
    "</table>\n";

    mysqli_close($link);

    ?>

  • #2
    Klingt nach einem Jobangebot. Eine Fehlersuche bzw. Debugging deinerseits kann ich nicht erkennen.

    Davon abgesehen ist der Code so gepostet unlesbar.

    Kommentar


    • #3
      Zitat von hellbringer Beitrag anzeigen
      Klingt nach einem Jobangebot. Eine Fehlersuche bzw. Debugging deinerseits kann ich nicht erkennen.

      Davon abgesehen ist der Code so gepostet unlesbar.
      Ja habs geändert müsste eigentlich wieder lesbar sein

      Kommentar


      • #4
        In der "bearbeiten.php" steht bei deinem Form
        Code:
        action="dbTabelle.php"
        drin, aber ein "update table" sehe ich nur in der "sendData.php".

        Du iniziierst auch in mehreren Dateien eine DB-Verbindung, lager das doch in eine Datei aus, die du in den anderen Dateien einbindest.

        Und du vermengst PHP und HTML, was schwerer zu lesen und vor allem unnötig ist.

        PHP-Code:
        echo '<th>&nbsp;Nachname&nbsp;</th>'

        Kommentar


        • #5
          Zitat von Miss Santrop Beitrag anzeigen
          In der "bearbeiten.php" steht bei deinem Form
          Code:
          action="dbTabelle.php"
          drin, aber ein "update table" sehe ich nur in der "sendData.php".

          Du iniziierst auch in mehreren Dateien eine DB-Verbindung, lager das doch in eine Datei aus, die du in den anderen Dateien einbindest.

          Und du vermengst PHP und HTML, was schwerer zu lesen und vor allem unnötig ist.

          PHP-Code:
          echo '<th>&nbsp;Nachname&nbsp;</th>'
          Danke es funktioniert, hab in der datei "bearbeiten.php" bei action die falsche Datei gehabt
          Richtig
          PHP-Code:
          action="sendData.php" 

          Kommentar

          Lädt...
          X