Eintragen, editieren & löschen funktioniert nicht

hm ...
falls jemand ne Antwort hat zum Post drüber, wäre ich sehr dankbar. Hab bis jetzt leider immer noch net den Fehler gefunden :confused:

MFG
R3DD3VIL
 
Also bei dem Code-Vorschlag von Gumbo gibt es ein kleines Problem. Er funktioniert soweit ganz gut, bis auf das Löschen eines Patienten. Er führt zwar den Befehl aus, aber aus der DB schmeisst er Ihn nicht raus. Rechte sind gesetzt.

Findet von euch jemand den Fehler warum der Patient nicht aus der DB geöscht wird ?
Ich hab irgendwie den Durchblick momentan verloren und sitzt total auf dem Schlauch. Hier nochmal den Code den Gumbo gespostet hat.

Thx schonmal vorab für eure Hilfe.
MFG
R3DD3VIL

PHP:
<html><body><div align="center">
<h1>Patienten bearbeiten</h1>
<?php

    //Verbindung herstellen
    $db = mysql_connect("localhost","xxx","xxx");
    mysql_select_db("xxx",$db);

    // Variablen aus POST/GET extrahieren
    $id = isset($GLOBALS['_'.$_SERVER['REQUEST_METHOD']]['id']) ? abs((int)$GLOBALS['_'.$_SERVER['REQUEST_METHOD']]['id']) : 0;
    $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;

    switch( $action ) {

        //
        // Datensatz ändern
        //
        case 'edit':
            if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
                $sql = "UPDATE Pat_ListePatienten SET pid='".mysql_real_escape_string($_POST['pid'])."', name='".mysql_real_escape_string($_POST['name'])."', vorname='".mysql_real_escape_string($_POST['vorname'])."', gebdat='".mysql_real_escape_string($_POST['gebdat'])."', dia_begin='".mysql_real_escape_string($_POST['dia_begin'])."', albis_id='".mysql_real_escape_string($_POST['albis_id'])."', current_dialyse='".mysql_real_escape_string($_POST['current_dialyse'])."' WHERE id=".$id;
                if( mysql_query($sql,$db) ) {
                    echo 'Datensatz '.$id.' wurde erfolgreich aktualisiert.';
                } else {
                    echo 'Fehler beim Aktualisieren des Datensatzes '.$id.'.';
                }
            } else {
        
                $sql = "SELECT * FROM Pat_ListePatienten WHERE id=$id";
                $result = mysql_query($sql,$db);
                $data = mysql_fetch_array($result);
                $data = array_map('htmlspecialchars', $data);
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="id" value="<?php echo $data["id"] ?>">
<table border="0" align="center">
<tr><td>Patienten-Kennzahl</td><td>
<input type="text" name="pid" value="<?php echo $data["pid"] ?>" size="50">
</td></tr><tr><td>Name</td><td>
<input type="text" name="name" value="<?php echo $data["name"] ?>" size="50">
</td></tr><tr><td>Vorname</td><td>
<input type="text" name="vorname" value="<?php echo $data["vorname"] ?>" size="50">
</td></tr><tr><td>Geburtsdatum</td><td>
<input type="text" name="gebdat" value="<?php echo $data["gebdat"] ?>" size="50">
</td></tr><tr><td>Dialysebeginn</td><td>
<input type="text" name="dia_begin" value="<?php echo $data["dia_begin"] ?>" size="50">
</td></tr><tr><td>Albis-Nummer</td><td>
<input type="text" name="albis_id" value="<?php echo $data["albis_id"] ?>" size="50">
</td></tr><tr><td>Zur Zeit in Diylase</td><td>
<input type="checkbox" name="current_dialyse" value="<?php echo $data["curent_dialyse"] ?>">
</td></tr><tr><td>&nbsp;</td><td>
<input type="submit" name="submit" value="&Auml;ndern">
</td></tr></table>
</form>
<?php
            }
            break;

        //
        // Datensatz löschen
        //
        case 'delete':
            if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
                //Daten l&ouml;schen
                if( mysql_query("DELETE FROM Pat_ListePatienten WHERE id=$id",$db) ) {
                    echo 'Datensatz '.$id.' wurde erfolgreich gelöscht.';
                } else {
                    echo 'Fehler beim Löschen des Datensatzes '.$id;
                }
            } else {
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    <p>Wollen Sie den Datensatz <?php echo $id; ?> wirklich löschen?</p>
    <p><input type="submit" value="Ja"> <a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">Nein</a></p>
</form>
<?php
            }
            break;

        //
        // Datensätze ausgeben
        //
        default:
            //Daten auslesen
            $result = mysql_query("SELECT * FROM Pat_ListePatienten",$db);
?> 
<table border="1" cellspacing="0" cellpadding="3" align="center">
<tr>
<th>Patienten-Kennzahl</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Geburtsdatum</th>
<th>Dialysebeginn</th>
<th>Albis-ID</th>
<th>Patient in Dialyse</th>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php
            while( $daten = mysql_fetch_array($result) ) {
                $daten = array_map('htmlspecialchars', $daten);
?>
<tr>
<td><?php echo $daten['pid']; ?></td>
<td><?php echo $daten['name']; ?></td>
<td><?php echo $daten['vorname']; ?></td>
<td><?php echo $daten['gebdat']; ?></td>
<td><?php echo $daten['dia_begin']; ?></td>
<td><?php echo $daten['albis_id']; ?></td>
<td><?php echo $daten['current_dialyse']; ?></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'].'?action=edit&amp;id='.$daten['id'] ?>">bearbeiten</a></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'].'?action=delete&amp;id='.$daten['id'] ?>">l&ouml;schen</a></td>
</tr>
<?php
            }
            break;
    }
?> 
</table></div></body></html>
 
Guten Morgen zusammen,

also ich bin immer noch kein Schritt weiter was die Löschung der Einträge angeht. Wir ham gestern schon zu zweit uns den halben Abend um die Ohren gehauen und können absolut keinen Fehler finden. Also falls jemand weiß woran das liegt, wäre ich sehr dankbar hier zu posten. (Problem siehe Post drüber)

MFG
R3DD3VIL :confused:
 
Der Code scheint korrekt zu sein. Jedenfalls soweit ich das beurteilen kann (ist grad etwas neblig. Seh net so weit).

Lass dir vor dem Query mal die $id ausgeben -> echo $id und schau, ob ein Wert vorhanden ist. Wenn versucht wird ein Datensatz zu löschen, der nicht vorhanden ist, wird keine Fehlermeldung ausgeworfen und es sieht für dich aus, als würde alles korrekt ablaufen. Ich vermute in $id steht 0 oder zumindest eine andere ID als der zu löschende Datensatz innehat.
 
Jap haben wir gestern schon gemacht. Das hat alles seine Richtigkeit. Deshalb sind wir ja so ratlos, weil wir den Fehler nicht finden können. Ich bin glaub reif für die Insel. Am Ende wird wahrscheinlich wieder irgend ein kleiner Minifehler dran schuld sein.

Wir haben auch schon das [...] == 'POST') durch ein Get ersetzt, dann funktioniert die Löschung einwandfrei. Nur uns fehlt halt dann die Sicherheitsabfrage. Also liegt meines achtens dort irgendwo der Hund begraben. Und da find ich aber keine Fehler, und dass ist was mich so Irre macht.
Also falls noch jemand Ideen, Vorschläge oder vielleicht ne Lösung hat, immer her damit.

MFG
R3DD3VIL

PHP:
<?     //
        // Datensatz löschen
        //
        case 'delete':
            if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
                //Daten l&ouml;schen
                if( mysql_query("DELETE FROM Pat_ListePatienten WHERE id=$id",$db) ) {
                    echo 'Datensatz '.$id.' wurde erfolgreich gelöscht.';
                } else {
                    echo 'Fehler beim Löschen des Datensatzes '.$id;
                }
            } else {
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    <p>Wollen Sie den Datensatz <?php echo $id; ?> wirklich löschen?</p>
    <p><input type="submit" value="Ja"> <a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">Nein</a></p>
</form>
 
OH man....
manchmal denk ich wieder nicht von 12 bis Mittag. Hab denFehler gefunden. Da ich ja alles in ein Template eingebaut habe, hat der Pfad in der Sicherheitsabfrage beim bestätigen mit "Ja" nicht gestimmt. Der Code
PHP:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
ist natürlich falsch, da so die Sicherheitsabfrage die falsche Seite abfragt. Es muss natürlich der Pfad richtig gestellt sein.
Und zwar so
PHP:
<form action="<?php echo htmlspecialchars($_SERVER['../dia/admin/admin.php']); ?>" method="post">

An Kopf hau. Wieder einfacher und viel Tumult um nix. Ich Depp :suspekt:

Danke dennoch für die Hilfe!
MFG
R3DD3VIL
 
Wenn man den Überblick verliert, hilft es meistens, wenn man die ganze Chose noch einmal programmiert.

Hab grad heute Morgen zwei Tage Arbeit gekippt, weil ich mit dem Chaos nicht mehr zufrieden war ;)
 
Zurück