Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Löschen eines DB-Satzes mit PHP

Empfohlene Antworten

Veröffentlicht

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!

$result = mysql_query($sql, $conn);

Das $sql muß $befehl2 sein.

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]

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

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?

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

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!

ich habs jetzt!

einfach in action=$PHP_SELF reinschreiben und es klappt prima!

danke für den Tipp!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.