Benutzer daten ändern

  • Hallo ich habe folgendes Problem ich schreibe gerade eine php seite für eine bücherverwaltung mit einer sql datenbank anbindung das was ich bis jetzt geschafft habe ist

    <style>
    table {
    border-collapse: collapse;
    border-spacing: 0;
    }
    th, td {
    border:2px solid #800000;
    padding: 5px;
    padding-left:5px;
    padding-right:5px;
    }
    </style>
    <?php
    mysql_connect('localhost', 'root', 'adminit');
    mysql_select_db('bookdb_f1');

    $typ = $_GET['typ'];

    function input_text( $name, $value = "" ) {

    echo '
    <td>
    <input type="text" name="'.$name.'" value="'.$value.'">
    </td>';
    }

    echo '<center> <h2>Autorenverwaltung</h2><br><br>
    <a href="?typ=autor">Autoren</a><br>
    <a href="?typ=ausleiher">weitere</a></center>
    <br>';

    if( isset( $typ ) ) {
    if( $typ == "autor" ) {
    if( isset( $_GET['edit'] ) ) {
    if( isset( $_POST['submit'] ) ) {
    mysql_query("UPDATE person SET name = '".$_POST['name']."', vorname = '".$_POST['vorname']."', strasse = '".$_POST['strasse']."', plz= '".$_POST['plz']."', email = '".$_POST['email']."' WHERE persid = '".$_GET['edit']."'");
    mysql_query("UPDATE autor SET vertragsnummer = '".$_POST['vertragsnummer']."', vertragsdauer = '".$_POST['vertragsdauer']."', vertragsbeginn = '".$_POST['vertragsbeginn']."' WHERE autorID = '".$_GET['edit']."'");
    }
    else
    {
    $user_query = mysql_query("SELECT * FROM person WHERE persid = '".$_GET['edit']."'");
    $user_fetch = mysql_fetch_assoc( $user_query );
    $autor_query = mysql_query("SELECT * FROM autor WHERE autorID = ".$user_fetch['PersID']."");
    $autor_fetch = mysql_fetch_assoc( $autor_query );
    echo '<form method="post">';

    echo '<table border="1">
    +
    <tr>
    <th>Nachname</th>
    <th>Vorname</th>
    <th>Straße</th>
    <th>PLZ</th>
    <th>Email</th>
    <th>Fax</th>
    <th>Vertragsnummer</th>
    <th>Vertragsdauer</th>
    <th>Vertragsbeginn</th>
    <th>Datenändern/th>
    </tr>';

    input_text( "name", $user_fetch['name'] );
    input_text( "vorname", $user_fetch['vorname'] );
    input_text( "strasse", $user_fetch['strasse'] );
    input_text( "plz", $user_fetch['plz'] );
    input_text( "email", $user_fetch['email'] );
    input_text( "vertragsnummer", $autor_fetch['vertragsnummer'] );
    input_text( "vertragsdauer", $autor_fetch['vertragsdauer'] );
    input_text( "vertragsbeginn", $autor_fetch['vertragsbeginn'] );
    input_text( "Datenändern", $autor_fetch['Datenändern'] );


    echo '</tr>
    <tr>
    <td>
    <input type="submit" name="submit">
    </td>
    </tr>
    <table>';
    }}

    else

    {
    $user_query = mysql_query("SELECT * FROM person WHERE diskriminator = 0");
    echo '<table border="1"><tr>
    <th>Nachname</th>
    <th>Vorname</th>
    <th>Straße</th>
    <th>PLZ</th>
    <th>Email</th>
    <th>Vertragsnummer</th>
    <th>Vertragsdauer</th>
    <th>Vertragsbeginn</th>
    <th>Verlag</th>
    <th>Datenändern
    <th>
    </th>
    </tr>';

    while( $user_fetch = mysql_fetch_assoc( $user_query ) )

    {

    $autor_query = mysql_query("SELECT * FROM autor WHERE autorID = ".$user_fetch['PersID']."");
    $autor_fetch = mysql_fetch_assoc( $autor_query );
    $verlag_query = mysql_query("SELECT * FROM verlag WHERE verlagID = '".$autor_fetch['verlagID']."'");
    $verlag_fetch = mysql_fetch_assoc( $verlag_query );

    echo mysql_error();
    echo '<tr>
    <td>'.$user_fetch['name'].'</td>
    <td>'.$user_fetch['vorname'].'</td>
    <td>'.$user_fetch['strasse'].'</td>
    <td>'.$user_fetch['plz'].'</td>
    <td>'.$user_fetch['email'].'</td>
    <td>'.$autor_fetch['vertragsnummer'].'</td>
    <td>'.$autor_fetch['vertragsdauer'].'</td>
    <td>'.$autor_fetch['vertragsbeginn'].'</td>
    <td>'.$autor_fetch['Verlag'].'</td>
    <td><a href="'.$_SERVER['REQUEST_URI'].'&edit='.$user_fetch['PersID'].'">[E]</a>
    </td>
    </tr>';

    echo '';
    }
    echo '</table>';
    }
    }
    elseif( $typ == "weitere" )
    {
    $user_query = mysql_query("SELECT * FROM person WHERE diskriminator = 1");
    echo '<table border="1">
    <tr>
    <th>Nachname</th>
    <th>Vorname</th>
    <th>Straße</th>
    <th>PLZ</th>
    <th>Email</th>
    <th>Datenändern</th>

    </tr>';

    while( $user_fetch = mysql_fetch_assoc( $user_query ) )
    {
    $ausleiher_query = mysql_query("SELECT * FROM ausleiher WHERE ausleihID = ".$user_fetch['PersID']."");
    $ausleiher_fetch = mysql_fetch_assoc( $ausleiher_query );
    echo '<tr>
    <td>'.$user_fetch['name'].'</td>
    <td>'.$user_fetch['vorname'].'</td>
    <td>'.$user_fetch['strasse'].'</td>
    <td>'.$user_fetch['plz'].'</td>
    <td>'.$user_fetch['email'].'</td>
    <td>'.$autor_fetch['Datenändern'].' <a href="'.$_SERVER['REQUEST_URI'].'&edit='.$user_fetch['PersID'].'">[E]</a>
    </tr>';
    }
    echo '</table>';
    }
    }

    ?>


    jetzt habe ich aber leider das problem das ich es einfach nicht hinbekomme ein feld zum ändern von benutzerdaten zu erstellen denn ich komme zwar auf das feld zum ändern aber wenn ich dann das eintragen will was ich ändern möchte ändert sich der daten satz einfach nicht was kann ich tun ????

  • 1. Keine Code-Formatierung benutzt
    2. Keine Debug-Ausgaben im Script
    3. Kein mysql_error eingebaut
    4. Kein mysql_real_escape_string eingebaut
    5. Kein error_reporting hochgedreht
    6. "Select *" ist immer schlecht

    Richtig debuggen

    Man bemerkt, dass ein Skript nicht das tut, was es soll.
    Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.