DFBL-Benjamin Geschrieben 27. Dezember 2002 Geschrieben 27. Dezember 2002 ich habe ein Problem! ich möchte ein Datensatz aus der Datenbank löschen, das klappt auch, aber ich möchte, das der Datensatz bevor der DB-Satz gelöscht wird ausgegeben wird und dann durch einen Knopf-druck gelöscht wird. ich habe auch schon was zusammen geschrieben, aber es wird nicht das gemacht, was ich gerne will, das löschen des DB-Satzes. so sieht men Programm aus: <?php /* * Loeschen von Datensaetzen von einer Datenbank * */ // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","*******"); // Wechsel der Datenbank mysql_select_db(projekt_bkik); // MySQL-Befehl1 $befehl1 = "select datum, uhrzeit, ort, betreff, grund from terminplaner "; $befehl1 .= "where benutzer_id = '".$HTTP_GET_VARS['benutzer_id']."' and "; $befehl1 .= "datum = '".$HTTP_GET_VARS['datum']."' and "; $befehl1 .= "uhrzeit = '".$HTTP_GET_VARS['uhrzeit']."' "; $ergebnis1 = mysql_query($befehl1, $conn); if($ergebnis1) { echo "Sie wollen folgender Termin aus ihrem Terminplaner löschen: "; while($inhalt = mysql_fetch_array($ergebnis1, MYSQL_ASSOC)) { $loeschen = 0; echo "<br>"; echo $inhalt['datum']; echo "<br>"; echo $inhalt['uhrzeit']; echo "<br>"; echo $inhalt['ort']; echo "<br>"; echo $inhalt['betreff']; echo "<br>"; echo $inhalt['grund']; echo "<br>"; echo "Loeschen: $loeschen"; echo "<br>"; [von hier]echo "<input type=Submit name=$loeschen value=loeschen>"; echo "<br>"; echo "Loeschen: $loeschen"; echo "<br>"; while($loeschen) { echo "Der Datensatz wurde gelöscht!"; loeschen(); }[/bis hier] } } else { echo "<p>" .mysql_error($conn); } function loeschen() { // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","*******"); // Wechsel der Datenbank mysql_select_db(projekt_bkik); // Mysql-Befehl2 zum Löschen vom Datensatz $befehl2 = "delete from terminplaner where "; $befehl2 .= "benutzer_id = '".$HTTP_GET_VARS['benutzer_id']."' and "; $befehl2 .= "datum = '".$HTTP_GET_VARS['datum']."' and "; $befehl2 .= "uhrzeit = '".$HTTP_GET_VARS['uhrzeit']."' "; $result = mysql_query($sql, $conn); if($result) { $nummer = mysql_affected_rows($conn); echo "<p> Es wurden $nummer Datensätze gelöscht!"; } else { echo "<p>" .mysql_error($conn); } // MySQL-Verbindung wird beendet! mysql_close($conn); } ?> [/PHP] das Programm kann man bestimmt noch einfacher schreiben, aber das wird dann später noch anders umgeschrieben, wenn es auch funktioniert! mir geht es um den Teil, der wo mit [von hier] bis [/bis hier] hervorgehoben wurde! wie muss ich das schreiben, das wenn der Button gedrückt wird eine 1 gesendet wird, das die while-Schleife ausgelöst wird? Im Voraus schon ein Dankeschön, für die Hilfe für mich! DANKE! Zitieren
Chaosmaker Geschrieben 28. Dezember 2002 Geschrieben 28. Dezember 2002 $result = mysql_query($sql, $conn); Das $sql muß $befehl2 sein. Zitieren
DFBL-Benjamin Geschrieben 29. Dezember 2002 Autor Geschrieben 29. Dezember 2002 ich habe das Programm jetzt nochmal umgeschriebn, das sieht jetzt so aus, aber ich bin immer noch nicht glücklich darüber, wie kann ich das machen, das wenn er ein Button drückt, erst den Datensatz löscht? <?php // Variable fuer die Bedingung $loeschen=0; $datenbank = "projekt_bkik"; // MySQL-Befehl1 zum Ausgeben des zu loeschenden Termins $befehl1 = "select datum, uhrzeit, ort, betreff, grund from terminplaner "; $befehl1 .= "where benutzer_id = '".$HTTP_GET_VARS['benutzer_id']."' and "; $befehl1 .= "datum = '".$HTTP_GET_VARS['datum']."' and "; $befehl1 .= "uhrzeit = '".$HTTP_GET_VARS['uhrzeit']."' "; // Mysql-Befehl2 zum Loeschen vom Datensatz $befehl2 = "delete from terminplaner where "; $befehl2 .= "benutzer_id = '".$HTTP_GET_VARS['benutzer_id']."' and "; $befehl2 .= "datum = '".$HTTP_GET_VARS['datum']."' and "; $befehl2 .= "uhrzeit = '".$HTTP_GET_VARS['uhrzeit']."' "; // Aufruf der function ausgabe mit dem Uebergabeparameter $befehl1 ausgabe($befehl1, $datenbank); //Wie kann ich das hier besser schreiben, mit einem Button? $loeschen=1; while($loeschen > 0) { // Aufruf der function loeschen mit dem Uebergabeparameter $befehl2 loeschen($befehl2, $datenbank); $loeschen--; } /** * Ausgabe des zu loeschenden Termins */ function ausgabe($befehl1, $datenbank) { // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","*****"); // Wechsel der Datenbank mysql_select_db($datenbank); // Ausfuehren des Mysql-Befehl 1 $ergebnis1 = mysql_query($befehl1, $conn); // Ueberpruefung ob der Befehl erfolgreich war, wenn ja, // geht in if-Zweig, sonst in else-Zweig if($ergebnis1) { echo "<p align=center>Sie wollen folgender Termin aus ihrem Terminplaner löschen? "; while($inhalt = mysql_fetch_array($ergebnis1, MYSQL_ASSOC)) { $loeschen = 0; echo "<br>"; echo $inhalt['datum']; echo "<br>"; echo $inhalt['uhrzeit']; echo "<br>"; echo $inhalt['ort']; echo "<br>"; echo $inhalt['betreff']; echo "<br>"; echo $inhalt['grund']; echo "<br>"; } } else { echo "<p>" .mysql_error($conn); } // MySQL-Verbindung wird beendet! mysql_close($conn); } /** * Loeschen des Termins, wenn die Bedingung * erfuellt wurde! */ function loeschen($befehl2, $datenbank) { // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","********"); // Wechsel der Datenbank mysql_select_db($datenbank); $result = mysql_query($befehl2, $conn); if($result) { echo "<p align=center> Es wurde der Datensatz gelöscht!"; } else { echo "<p align=center>" .mysql_error($conn); } // MySQL-Verbindung wird beendet! mysql_close($conn); } ?> [/PHP] Zitieren
robotto7831a Geschrieben 29. Dezember 2002 Geschrieben 29. Dezember 2002 Hallo, nimm doch mal einen anderen Ansatz. Du läst alles Ausgeben wie bisher auch und dann läst Du einen Button mit dem Namen "loesch_button" anzeigen. Nach dem Submit wird die Seite nochmal aufgerufen und wenn "loesch_button" gedrückt wurde, dann soll der den Datensatz löschen. Frank Zitieren
DFBL-Benjamin Geschrieben 29. Dezember 2002 Autor Geschrieben 29. Dezember 2002 das möchte ich auch so machen! aber wie muss ich das schreiben, habe schon etliches Ausprobiert, aber bis jetzt hat das noch nicht geklappt bsp: <form action=? method=post> <input type="Submit" name="" value="loeschen?"> </form> wo muss ich hier die 1 setzen? das er dann in die while-Schleife reinkommt? Zitieren
robotto7831a Geschrieben 29. Dezember 2002 Geschrieben 29. Dezember 2002 Probier mal folgendes: if ( (!isset($HTTP_POST_VARS['loeschen'])) { echo '<form action="" method="post">'; echo '<input type="Submit" name="loeschen" value="loeschen?">'; echo '</form>'; } else if ( (isset($HTTP_POST_VARS['loeschen'])) { //Datensatz löschen } else { } [/PHP] So sollte es funktionieren. Frank Zitieren
DFBL-Benjamin Geschrieben 29. Dezember 2002 Autor Geschrieben 29. Dezember 2002 ich werde es nachher noch ausprobieren, wenn es klappt, werde ich noch mal schreiben! ob es auch das wahre ist weis ich nicht! wenn der "action=" " " - Tag so ist, dann ruft sich die Seite selber wieder auf? weil das geht glaube ich auch mit PHP_Self aber ich weis auch nicht wie das geht! Zitieren
DFBL-Benjamin Geschrieben 30. Dezember 2002 Autor Geschrieben 30. Dezember 2002 ich habs jetzt! einfach in action=$PHP_SELF reinschreiben und es klappt prima! danke für den Tipp! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.