MySQL Datensätze löschen

So nun gibbet halt noch ein Prob, habe das mit dem Editieren soweit hinbekommen.
Nur wenn ich nu in die Zeilen wo die Dinge mit Select reingetan wurden, etwas anderes reischreibe, dann sagt er mir zwar, dass es Erfolgreich war, und schmeißt mich auch wier auf die Übersicht zurück, aber es wurde nischt geändert.

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

// Datenbankverbindung herstellen

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


$abfrage = "update benutzerdaten set Nickname='$Nickname', Kennwort='.md5 ($value2).', Vorname='$Vorname', Nachname='$Nachname' where Id='".$_GET['id']."'";
$result = mysql_query($abfrage, $connectionid);
if ($result)
	{
		echo "Erfolgreich";
		header ("Location: index.php?section=adminlist");
	}
	else
	{
		echo "Fehler";
	}
?>

Was kann daran falsch sein
Ich habe echt keine Ahnung

MFG Niels
 
Hallo,
probier mal folgendes:
1. Überprüfe, ob mysql_erorr() eine Fehlermeldung ausgibt.
2. Lass dir den Query mit echo ausgeben und überprüfe ob er in phpMyAdmin funktioniert.
3. Probiere das hier
PHP:
<? 
include("mysql.php"); 
 
// Datenbankverbindung herstellen 
 
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
die ("Keine Verbindung zur Datenbank"); 
} 
 
 
$abfrage = "update benutzerdaten set Nickname='$Nickname', Kennwort='".md5($value2)."', Vorname='$Vorname', Nachname='$Nachname' where Id='".$_GET['id']."'"; 
$result = mysql_query($abfrage, $connectionid); 
if ($result) 
	{ 
		echo "Erfolgreich"; 
		header ("Location: index.php?section=adminlist"); 
	} 
	else 
	{ 
		echo "Fehler"; 
	} 
?>

mfg
forsterm
 
Also habe ma echo eingebaut, dabei bekam ich diese Ausgabe:

Code:
update benutzerdaten set Nickname='Headymaster', Kennwort='.md5 ().', Vorname='mum', Nachname='Maseberg' where Id=''Erfolgreich

Daraus schließe ich, dass er zwar alles richtig macht, aber das Script weiß net, bei welche Id er die Einträge updaten soll.

Oder was meinst du, aber die Id ist komischweise eingebaut *kopfkratz*

MFG Headymaster



PS: Wenn du vielleicht ICQ oder so ahst, wäre cool wenn wir uns darüber ma unterhalten könnten.

MFG Niels
 
Zuletzt bearbeitet:
Headymaster hat gesagt.:
Daraus schließe ich, dass er zwar alles richtig macht, aber das Script weiß net, bei welche Id er die Einträge updaten soll.

Hallo,
genau da liegt der Fehler. Bist du dir sicher, dass die Id über $_GET und nicht über $_POST übertragen wird?

mfg
forsterm
 
Jo denke schon habe das so aufgebaut.

Hier werden die Datensätze aufgelistet mit Edit und Del Funktion:

PHP:
<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\"><a href=\"edituser.php?id=$zeile->Id\">EDIT</a></td>";
   echo "<td align=\"center\" bgcolor=\"#00CCFF\"><a href=\"deluser.php?id=$zeile->Id\"><img src=\"images/del.gif\"></img></a></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>




Wie man sieht wird bei Betätigung von EDIT alles an edituser.php?id=$zeile->Id geschickt,also wir die Id übergeben.
Soweit funktioniert auch noch alles.

Aber hier:

PHP:
<body bgcolor="#00CCFF">
<form action="listing2.php" method="post">

<?
include("mysql.php"); // Datenbank Daten
include("checkuser.php"); // Ist der User angemeldet

// Datenbankverbindung aufbauen

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

// Datensätze rausholen

$abfrage = "SELECT * from benutzerdaten where Id='".$_GET['id']."'";   
$result = mysql_query($abfrage,$connectionid);
while ($row = mysql_fetch_array ($result)) 
{
$Nickname = $row["Nickname"];
$Kennwort = $row["Kennwort"];
$Vorname = $row["Vorname"];
$Nachname = $row["Nachname"];

echo <<<BCD

<table width="412" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
    <td width="108">Nickname:</td>
    <td width="304">
      <input type="text" name="Nickname" value="$Nickname">
    </td>
  </tr>
  <tr>
    <td>Kennwort:</td>
    <td><input type="password" name="Kennwort" value="$Kennwort"></td>
  </tr>
  <tr>
    <td>Vorname:</td>
    <td><input type="text" name="Vorname" value="$Vorname">
    </td>
  </tr>
  <tr>
    <td>Nachname:</td>
    <td><input type="text" name="Nachname"  value="$Nachname">

    </td>
  </tr>
  <tr>
    <td><input type="submit" value="ändern"></td>
  </tr>
BCD;
}
echo "</table>";
echo "</form>";
?>
</form>
</body>

liegt das Prob, zwar werden die Datensätze richtig in die Tablle eingefügt, so dass ich sie bearbeiten kann, aber werden net an die listing2.php Datein gesendet:

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

// Datenbankverbindung herstellen

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


$abfrage = "update benutzerdaten set Nickname='$Nickname', Kennwort='.md5 ($value2).', Vorname='$Vorname', Nachname='$Nachname' where Id='".$_GET['id']."'";
$result = mysql_query($abfrage, $connectionid);
if ($result)
	{
		echo "Erfolgreich";
		
	}
	else
	{
        mysql_error();
		echo "Fehler";
	}
?>


Hier liegt dann das Prob, vielleicht einfach das Id=$_GET[id] weglassen, da es ja schon mit dem Formular übergeben wird

Keine Ahnung, wirklich.

MFG Niels
 
Hallo,
ändere mal diese Scripte
PHP:
<body bgcolor="#00CCFF"> 
<form action="listing2.php" method="post"> 
<? 
include("mysql.php"); // Datenbank Daten 
include("checkuser.php"); // Ist der User angemeldet 
// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("$dbserver", "$dbuser", "$dbpw"); 
if (!mysql_select_db ("$dbname", $connectionid)) 
{ 
die ("Keine Verbindung zur Datenbank"); 
} 
// Datensätze rausholen 
$abfrage = "SELECT * from benutzerdaten where Id='".$_GET['id']."'";	
$result = mysql_query($abfrage,$connectionid);
while ($row = mysql_fetch_array ($result)) 
{
$Nickname = $row["Nickname"]; 
$Kennwort = $row["Kennwort"]; 
$Vorname = $row["Vorname"]; 
$Nachname = $row["Nachname"]; 
?>
<<<BCD
<form action="listing2.php" name="POST">
<table width="412" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000"> 
<tr> 
	<td width="108">Nickname:</td> 
	<td width="304"> 
	 <input type="text" name="Nickname" value="<? echo $Nickname; ?>"> 
	</td> 
</tr> 
<tr> 
	<td>Kennwort:</td> 
	<td><input type="password" name="Kennwort" value="<? echo $Kennwort; ?>"></td> 
</tr> 
<tr> 
	<td>Vorname:</td> 
	<td><input type="text" name="Vorname" value="<? echo $Vorname; ?>"> 
	</td> 
</tr> 
<tr> 
	<td>Nachname:</td> 
	<td><input type="text" name="Nachname" value="<? echo $Nachname; ?>"> 
	</td> 
</tr> 
<tr> 
	<td><input type="submit" value="ändern"><input type="hidden" name="id" value="<? echo $_GET['id']; ?>"></td> 
</tr> 
BCD;
<? } ?>
</table>
</form>
</form> 
</body>
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='".$_POST['id']."'"); 
 
if (!($ergebnis = mysql_query($anfrage))) { 
	mysql_error(); 
	exit(); 
} else { 
header ("index.php?section=adminlist"); 
echo "Der Admin wurde aus der Datenbank gelöscht" 
}
ab.

Es war ja klar, dass das nicht funktionieren konnte, da sobal du das Formular mit den Datensätzen abgeschickt hast, die GET Variable id nicht mehr vorhanden war.

mfg
forsterm
 
Zuletzt bearbeitet:
Zurück