MySQL Datensätze löschen

Headymaster

Erfahrenes Mitglied
Hallo!

Und zwar ist mein Prob, dass ich ein Webinterface code und ich halt noch ein bisschen Anfängerlike bin.

Code:
<html>
<body bgcolor="#00CCFF">
<p>
  <?php
include ("checkuser.php");
include ("mysql.php");

// Verbindung mit der Datenbank
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

// Datenbank auslesen
$anfrage = "SELECT Id, Nickname, Vorname, Nachname FROM benutzerdaten;";
	
if (!($ergebnis = mysql_query($anfrage))) {
    mysql_error();
	exit();
} else {

}

// Anzahl der Datensätze(Zeilen) zählen
$anzahl_zeilen = mysql_num_rows($ergebnis);

// Anzahl der Spalten(Felder) zählen
$anzahl_felder = mysql_num_fields($ergebnis);

// Kopf der Tabelle generieren
echo "<table border=\"1\" align=\"center\">";
echo "<tr>";
echo "<td bgcolor=\"#00CCFF\"><b>ID</b></td>";
echo "<td bgcolor=\"#00CCFF\"><b>Nickname</b></td>";
echo "<td bgcolor=\"#00CCFF\"><b>Vorname</b></td>";
echo "<td bgcolor=\"#00CCFF\"><b>Nachname</b></td>";
echo "<td bgcolor=\"#00CCFF\"><b>edit</b></td>";
echo "<td bgcolor=\"#00CCFF\"><b>del</b></td>";
echo "</tr>";

// Alle Zeilen aus der Datenbank holen und in die Tabelle einfügen

while ($zeile = mysql_fetch_object($ergebnis)) {
   echo "<tr>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\">$zeile->Id</td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\">$zeile->Nickname</td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\">$zeile->Vorname</td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\">$zeile->Nachname</td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\"><input type=\"submit\" value=\"EDIT\"></form></td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\"><input type=\"submit\" value=\"DEL\"></form></td>";
   
}
   echo "</td>";

//Ende der HTML-Tabelle
echo "</table>";


?>
</p>
<p align="center"><a href="index.php?section=useradd">Neuen Admin anlegen</a> </p>
</body>
</html>

So mein Prob ist nun, wie kann ich in dieser Seite es so einrichten, dass man mit den Buttons Edit und Del genau den Datensatz editieren oder löschen kann der zu "Id=1 usw"gehört

Wäre cool wenn mir da jmd. helfen könnte.

MFG Niels
 
Hallo,
das Thema gab es schon sehr oft :suchen:.
Dein Vorhaben ist eigentlich nicht schwer, du übergibts die ID des Eintrages der gelöscht erden soll an ein PHP Script, welches dann die gewünschte Aktion ausführt. Die ID übergibst du am besten mit $_GET.

mfg
forsterm
 
Ok, also wenn ich recht verstehe müsste es bei dem Delete so aussehen:

Code:
echo "<td align=\"center\" bgcolor=\"#00CCFF\"><form action=\"deluser.php\" method=\"post\"><input type=\"submit\" value=\"DEL\"></form></td>";


und die deluser.php:

Code:
<?php
include ("mysql.php");
include ("checkuser.php");

// Verbindung mit der Datenbank
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 


// Datensätze aus Datenbank löschen

$anfrage = mysql_query ( DELETE FROM benutzerdaten where Id="$_GET("$zeile->Id" );
	
if (!($ergebnis = mysql_query($anfrage))) {
    mysql_error();
	exit();
} else {
header ("index.php?section=adminlist");
echo "Der Admin wurde aus der Datenbank gelöscht"
}



Aber wie bring ich das $_GET in den beiden Dateien ein, ich bin halt erst seid einer Woche mit php beschäftigt.
Bin auch lernfähig ;-)

MFG Niels
 
Ok, und wie sollte ich das jeze machen, spann mich doch net so auf die Folter ;-)

Also kann man das so machen:

Code:
echo "<td align=\"center\" bgcolor=\"#00CCFF\"><form action=\"deluser.php\" method=\"$_POST['$zeile->Id']\"><input type=\"submit\" value=\"DEL\"></form></td>";

Wie gesagt wenn du da an dem Code den ich gepostet habe ma zeigen könntest wqie ungefähr, dann weiß ich es auch für später, weil ich komm einfach net weiter und mein Kopf dampft bis zum geht net mehr :P

MFG Niels
 
Hallo,
wenn du es so machst,
PHP:
echo "<td align=\"center\" bgcolor=\"#00CCFF\"><form action=\"deluser.php\" method=\"POST\"><input type=\"hidden\" name=\"id\" value=\"1\"><input type=\"submit\" value=\"DEL\"></form></td>";
dann kannst du in deluser.php die id mit $_POST['id'] abfragen (für die 1 musst du natürlich immer die id aus der Datenbank angeben).

Ich persönlich würde das ganze jedoch mit $_GET machen (finde ich persönlich einfacher und schöner).
z.B.
PHP:
echo "<td align=\"center\" bgcolor=\"#00CCFF\"><a href=\"deluser.php?id=1\">Löschen</a></td>";
in dem Fall greifst du dann mit $_GET['id'] auf die Variable zu.

Den Rest solltest du alleine können.

mfg
forsterm
 
Danke schonma, bin jeze auf jeden weiter, und endlich habe ich $_GET und $_POST verstanden....hehe....


So nun noch ein Proib, in meinem Code scheint ein Fehler zu sein

FEHLER:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/export/www/vhosts/funnetwork/hosting/headymaster16/deluser.php on line 15

CODE:

PHP:
<?php
include ("mysql.php");
include ("checkuser.php");

// Verbindung mit der Datenbank
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 


// Datensätze aus Datenbank löschen

$anfrage = mysql_query "DELETE FROM benutzerdaten where Id="$_GET['id']";";
	
if (!($ergebnis = mysql_query($anfrage))) {
    mysql_error();
	exit();
} else {
header ("index.php?section=adminlist");
echo "Der Admin wurde aus der Datenbank gelöscht"
}

Ich habe keine Ahnung woran es liegen kann.
Habe einen Fehler beseitig, aber jeze zeigt er mir nen anderen an. =(

woran kann das liegen

MFG Headymaster
 
PHP:
<?php 
include ("mysql.php"); 
include ("checkuser.php"); 
 
// Verbindung mit der Datenbank 
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
die ("Keine Verbindung zur Datenbank"); 
} 
 
 
// Datensätze aus Datenbank löschen 
 
$anfrage = mysql_query("DELETE FROM benutzerdaten where Id='".$_GET['id']."'"); 
 
if (!($ergebnis = mysql_query($anfrage))) { 
	mysql_error(); 
	exit(); 
} else { 
header ("index.php?section=adminlist"); 
echo "Der Admin wurde aus der Datenbank gelöscht" 
}
 
Jo es funktioniet.
Aber jez gibbet noch ein Prob, ich werde net wieder auf die "index.php?section=adminlist zurückgeworfen, obwohl ich dies eingetragen habe:

PHP:
// Datensätze aus Datenbank löschen 
 
$anfrage = mysql_query("DELETE FROM benutzerdaten where Id='".$_GET['id']."'"); 
 
if (!($ergebnis = mysql_query($anfrage))) { 
    mysql_error(); 
    exit(); 
} else { 
header ("Location: index.php?section=adminlist"); 
echo "Der Admin wurde aus der Datenbank gelöscht";
}
 
Problem selber gelöst.
Habe den Vergleich rausgenommen und gleich eine Witerleitung mit header("Location:
gemacht, naja jeze habe ich vielleicht bald noch ein Prob, will die Leute ja auch bearbeiten können, ma sehn ob ich es selber hinbekomme, aber sonst schreib ich hier nochma rein.

MFG Niels
 
Zurück