NeoNeMeSiS
Grünschnabel
Hallo ich habe folgendes Problem - wie im Anhang erkenntlich - und zwar soll der User einen beliebigen Eintrag aus der DB löschen.
Bisher ist diese Funktion von mir nur so gelöst, dass immer der zuerst in die DB eingetragene Eintrag gelöscht wird, egal auf welchen "Löschen-Button" man drückt.
Ich möchte nun das der Button unter dem jeweiligen Eintrag auch nur genau diesen Eintrag löscht.
P.S.: Das "Löschen" steht ganz am Ende des Quellcodes [ if(isset($_POST['delete']) AND $_POST['delete'] == "Eintrag löschen") ]
Nun folgt der Code:
Für Vorschläge wäre ich sehr dankbar.
Wichtig
Allerdings sind keine Funktionen die diese Datei "admin.php" nocheinmal mit Parametern wie "admin.php?action=delete&id=$var" aufrufen möglich da eine Vorgeschaltete Abfrage nach korrektem Usernamen und PW das verhindert.
Sollte auch dafür jemand eine Idee haben ich habe immer ein offenes Ohr!
Bisher ist diese Funktion von mir nur so gelöst, dass immer der zuerst in die DB eingetragene Eintrag gelöscht wird, egal auf welchen "Löschen-Button" man drückt.
Ich möchte nun das der Button unter dem jeweiligen Eintrag auch nur genau diesen Eintrag löscht.
P.S.: Das "Löschen" steht ganz am Ende des Quellcodes [ if(isset($_POST['delete']) AND $_POST['delete'] == "Eintrag löschen") ]
Nun folgt der Code:
PHP:
<?
//Verbindung zum MySQL-Server
mysql_connect() or die("Verbindung fehlgeschlagen");
//wenn nichts angegeben, wird localhost, root ohne passwort genommen
//DB auswählen
mysql_select_db("msdnaa") or die ("DB nicht gefunden");
$sql = "SELECT ".
"id, nickname, password ".
"FROM ".
"users ".
"WHERE ".
"(nickname like '".$u_nick."') AND ".
"(password = '".md5 ($u_pw)."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
mysql_fetch_array ($result);
}
else
{
header("Location: index.php?fehler=1");
}
?>
<?
// Datenbankverbindung aufbauen
$db = mysql_connect ("localhost", "root", "");
mysql_select_db("msdnaa", $db) or die ("Keine Verbindung zur Datenbank");
?>
<form action="admin.php">
<pre>
Softwarekategorie: <input type="text" name="swkat" style="border: thin solid; border-color: black; border-width: 1px;">
Softwaretitel: <input type="text" name="swtitel" style="border: thin solid; border-color: black; border-width: 1px;">
Softwarebeschreibung: <textarea name="eintrag" cols="50" rows="3" style="border: thin solid; border-color: black; border-width: 1px;"></textarea>
<input type="submit" name="ok" value="Senden" style="border: thin solid; border-color: black; border-width: 1px;"><input type="reset" style="border: thin solid; border-color: black; border-width: 1px;">
</pre>
</form>
<?
if(isset($ok))
{
$query = "insert into software(SNr,SInhalt,SKat,STitel) values('','$eintrag','$swkat','$swtitel')";
$result = mysql_query($query) or die("Einfügen fehlgeschlagen");
header("Location: index.php?show=admin");
}
;?>
<form action="admin.php" method="POST">
<TABLE style="border: thin solid; border-color: red; border-width: 1px;">
<tr>
<td style="border: thin solid; border-color: blue; border-width: 1px;">Vorhandene DB-Einträge: </td>
</tr>
<?
//Wenn das Formular abgeschickt wurde wird der entsprechende Eintrag gelöscht
//Hier werden die Formulare Ausgegeben.
//Jedes Produkt erhält aber sein eigenes Formular.
$sw = mysql_query("SELECT * FROM software order by SNr DESC") or die ("Anfrage fehlgeschlagen");
while($line = mysql_fetch_row($sw))
{
echo "<tr><td style='text-align:top'>";
?>
<pre>
Lfd-Nr.: <input type='text' name='snr' value='<?=$line[0]?>' style="border: thin solid; border-color: black; border-width: 1px;">
Titel: <input type='text' value='<?=$line[3]?>' style="border: thin solid; border-color: black; border-width: 1px;">
Kategorie: <input type='text' value='<?=$line[2]?>' style="border: thin solid; border-color: black; border-width: 1px;">
Inhalt: <textarea cols='50' rows='5' style="border: thin solid; border-color: black; border-width: 1px;"><?=$line[1]?></textarea>
<center><input type='submit' name='delete' value='Eintrag löschen'></center>
</pre><br>
<?
echo "</td></tr>";
}
?>
</TABLE>
</form>
<?
if(isset($_POST['delete']) AND $_POST['delete'] == "Eintrag löschen")
{
$s_nr = $_POST['snr'];
//Hier kann jede Variable stehen.
//Sie sollte aber nur einmal vorkommen ;)
mysql_query("delete from software where SNr = $s_nr limit 1");
header("Location: index.php?show=admin");
//echo "Löschen erfolgreich!";
}
//Freigeben der Ergebnis-Ressource
mysql_free_result($result);
//Verbindung schließen
mysql_close();
?>
Für Vorschläge wäre ich sehr dankbar.
Sollte auch dafür jemand eine Idee haben ich habe immer ein offenes Ohr!