Hallo,
Habe ein problem mit folgendem code, welcher bei mir als produkte.php abgespeichert ist. Beim aufruf des skripts werden die nummern der datensätze in der html-auswahlliste angezeigt. Wenn man eine nummer auswählt und dann auf produkt loeschen klickt, wird aber nichts in der datenbank gelöscht und die nummer verschwindet auch nicht aus der liste.
Mit der abfrage "delete from produkte where produktnummer =1" läßt sich aber einwandfrei ein satz löschen.
Aber mit dem paramter $_POST in der abfrage stimmt was nicht.
mfg
san26
Hier der code:
<html>
<head>
<title>Webbasierte Datenverwaltung</title>
</head>
<body>
<form action="produkte.php" method="post">
<select name="pnummer_auswahl">
<option value="0">[Produktnummer auswählen]</option><? echo $nummern;?>
</select>
<input type="submit" name="loeschen" value="Produkt loeschen">
</body>
</html>
<?php
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="webshop";
# Produktnummern aus der Datenbank lesen
function pnummer_lesen()
{
global $db_host, $db_user, $db_password, $db_name;
$dbh= mysql_connect($db_host, $db_user, $db_password);
$datenbank = mysql_select_db($db_name);
$abfrage = "select produktnummer from produkte";
$ergebnis = mysql_query($abfrage, $dbh);
$options="";
while ($reihe = mysql_fetch_row($ergebnis))
{
# HTML-Code für jede Produktnummer erzeugen, um der
#Auswahlliste hinzuzufügen
$options .="<option value=\"{$reihe[0]}\">";
$options .="{$reihe[0]}</option>\n";
}
mysql_close($dbh);
return($options);
}
### Datensatz loeschen ###
function datensatz_loeschen()
{
global $db_host, $db_user, $db_password, $db_name;
$dbh = mysql_connect($db_host, $db_user, $db_password);
$datenbank =mysql_select_db($db_name);
$abfrage = "DELETE from Produkte";
$abfrage .= "where produktnummer = ".$_POST['pnummer_auswahl'];
$ergebnis = mysql_query($abfrage, $dbh);
mysql_close($dbh);
}
if (!empty($_POST))
{
if (isset($_POST['loeschen']))
{ datensatz_loeschen();}
}
$nummern=pnummer_lesen();
?>
Habe ein problem mit folgendem code, welcher bei mir als produkte.php abgespeichert ist. Beim aufruf des skripts werden die nummern der datensätze in der html-auswahlliste angezeigt. Wenn man eine nummer auswählt und dann auf produkt loeschen klickt, wird aber nichts in der datenbank gelöscht und die nummer verschwindet auch nicht aus der liste.
Mit der abfrage "delete from produkte where produktnummer =1" läßt sich aber einwandfrei ein satz löschen.
Aber mit dem paramter $_POST in der abfrage stimmt was nicht.
mfg
san26
Hier der code:
<html>
<head>
<title>Webbasierte Datenverwaltung</title>
</head>
<body>
<form action="produkte.php" method="post">
<select name="pnummer_auswahl">
<option value="0">[Produktnummer auswählen]</option><? echo $nummern;?>
</select>
<input type="submit" name="loeschen" value="Produkt loeschen">
</body>
</html>
<?php
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="webshop";
# Produktnummern aus der Datenbank lesen
function pnummer_lesen()
{
global $db_host, $db_user, $db_password, $db_name;
$dbh= mysql_connect($db_host, $db_user, $db_password);
$datenbank = mysql_select_db($db_name);
$abfrage = "select produktnummer from produkte";
$ergebnis = mysql_query($abfrage, $dbh);
$options="";
while ($reihe = mysql_fetch_row($ergebnis))
{
# HTML-Code für jede Produktnummer erzeugen, um der
#Auswahlliste hinzuzufügen
$options .="<option value=\"{$reihe[0]}\">";
$options .="{$reihe[0]}</option>\n";
}
mysql_close($dbh);
return($options);
}
### Datensatz loeschen ###
function datensatz_loeschen()
{
global $db_host, $db_user, $db_password, $db_name;
$dbh = mysql_connect($db_host, $db_user, $db_password);
$datenbank =mysql_select_db($db_name);
$abfrage = "DELETE from Produkte";
$abfrage .= "where produktnummer = ".$_POST['pnummer_auswahl'];
$ergebnis = mysql_query($abfrage, $dbh);
mysql_close($dbh);
}
if (!empty($_POST))
{
if (isset($_POST['loeschen']))
{ datensatz_loeschen();}
}
$nummern=pnummer_lesen();
?>
Kommentar