dantesatz aus mySQL löschen
hansemann
- datenbank
0 Andreas-Lindig0 srob
hi leute!
ich möcht gerne einen datensatz aus mySQL löschen.
dazu hab ich folgenden code:
<form name="delete" action="<?php echo $editFormAction; ?>">
<input type="hidden" name="delete" value="delete">
<?php
$aktid = $row_modperson['ID'];
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if ($delete == "delete") {
$updateSQL = sprintf("DELETE FROM rh_user WHERE ID=$aktid LIMIT 1");
mysql_select_db($database_ambSQL, $ambSQL);
$Result1 = mysql_query($updateSQL, $ambSQL) or die(mysql_error());
}
?>
<input type="submit" value="Datensatz löschen">
</form>
natürlich funktioniert das ganze nicht...
kann mir jemand helfen?
Hallo,
natürlich funktioniert das ganze nicht...
natürlich werde ich aus Deinem Quelltext nicht schlau ;)...
kann mir jemand helfen?
...aber ich glaube schon.
Die Abfrage zum Löschen heißt:
DELETE FROM tabellenname
WHERE bedingung
UPDATE ist falsch.
Gruß, Andreas
So, ich habs nochmal bissi gekürzt:
<form name="delete" action="<?php echo $editFormAction; ?>">
<input type="hidden" name="delete" value="delete">
<?php
$aktid = $row_modperson['ID'];
//$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if ($delete == "delete")
{
mysql_db_query("","DELETE FROM rh_user WHERE ID=$aktid LIMIT 1");
//print $aktid;
}
?>
<input type="submit" value="Datensatz löschen">
</form>
wenn ich das print auskommentier, dann wird mir die id des aktuellen datensatzes aungezeigt, wenn ich meinen button klick, aber meine "löschaktion" läuft einfach nicht.
aber zumindest weiß ich adas die kommunikation mit der datenbank korrekt läuft....
muss ic hdas mit was anderem machen, oder so?
Hi hansemann
mysql_db_query("","DELETE FROM rh_user WHERE ID=$aktid LIMIT 1");
Mach das LIMIT 1 da weg, das gehört da nicht hin. Zusätzlich solltest du dir Fehlermeldungen davon aufheben und ausgeben lassen, dann findest du solche Syntaxfehler auch eher.
Gruss Daniela
hallo!
danke, aber das hat auch nichts gebracht...
es passiert weiterhin gar nichts...
mysql_db_query passt doch, oder?
beste grüße,
hansemann
Hi hansemann,
es passiert weiterhin gar nichts...
solange Du Danielas Hinweis nicht befolgst, wird sich daran auch kaum etwas ändern ...
Viele Grüße
Michael
Hallo hansemann,
$aktid = $row_modperson['ID'];
//$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
besser $_SERVER['PHP_SELF'];
if ($delete == "delete")
du gehst von register_globals=on aus (nicht $delete sondern $_POST['delete'] bzw. $_GET['delete'] - je nach dem was in $editFormAction steht)
{
mysql_db_query("","DELETE FROM rh_user WHERE ID=$aktid LIMIT 1");
in welcher Datenbank willst du den was löschen? ->http://de2.php.net/mysql_db_query
besser wäre aber mysql_select_db() und mysql_query() (mysql_db_query() ist veraltet)
außerdem, wo ist eigentlich mysql_connect()?
wenn ich das print auskommentier, dann wird mir die id des aktuellen datensatzes aungezeigt, wenn ich meinen button klick, aber meine "löschaktion" läuft einfach nicht.
was sagt mysql_error()?
aber zumindest weiß ich adas die kommunikation mit der datenbank korrekt läuft....
woher?
Grüße aus Nürnberg
Tobias
Hi,
ich finde Deine Angaben etwas kraus.
1. ruft die Seite überhaupt sich selbst auf?
2. $aktid = $row_modperson['ID'] ->hast Du diesen Datensatz überhaupt?
gruß, Andreas
Oi!
<form name="delete" action="<?php echo $editFormAction; ?>">
<input type="hidden" name="delete" value="delete">
<?php
$aktid = $row_modperson['ID'];
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if ($delete == "delete") {
$updateSQL = sprintf("DELETE FROM rh_user WHERE ID=$aktid LIMIT 1");
mysql_select_db($database_ambSQL, $ambSQL);
$Result1 = mysql_query($updateSQL, $ambSQL) or die(mysql_error());
}
?>
<input type="submit" value="Datensatz löschen">
</form>
Was genau funktioniert nicht?
Fehlermeldungen?
Oder keine? Wie weicht dann das Ergebnis von der Erwartung ab?
Welchen Sinn macht die Verwendung von der Klausel LIMIT, wenn Du nicht ordnest, sondern nach einer ID filterst (womit es mehr oder weniger zufällig ist, welcher der von der Filterbedingung betroffenen DS wirklich gelöscht wird)?
Welchen Sinn macht die Anordnung des PHP-Blockes an dieser Stelle des Dokumentes (mitten in der Formauszeichnung)?
HTH Robert