PHP-Problem

MattisGod

Mitglied
Hi, also ich muss also einstiegsprojekt in meiner firma eine konfektionierungsdatenbank erstellen ... das wäre ja soweit auch gar kein problem ... ich hab so ziemlich alles ... ich kann alle daten anzeigen, neue daten anlegen und einzele daten in der detailansicht anzeigen ... das einzige wo ich stecken bleibe ist wenn ich daten löschen will ...

Ich erklär euch schnell den aufbau ... also ich habe 9 Felder und der Primärschlüssel heist kenn_nr. so nun möchte ich einen datensatz löschen und klicke dafür auf den entsprechenden link ... und kommt eine auflistung aller Daten. Nun geben ich in ein Textfeld die kenn_nr des Datensatzes an den ich löschen möchte. wenn ich nun auf den Button "Daten löschen" klicke dann wird mir zwar meine erstellte meldung angezeigt "Der Datensatz würde gelöscht" allerdings wenn ich dann wieder in die übersichtstabelle zurückgehe ist der datensatz immer noch da ...
ich verzweifel langsam ich komm einfach nicht mehr weiter ... ich hoffe das einer von euch weis was ich flasch mache.
Hier der Code von der Löschen Datei:

Code:
<?php require_once('Connections/ibl.php'); ?><?php
$colname_Recordset1 = "1";
if (isset($HTTP_POST_VARS['kenn_nr'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['kenn_nr'] : addslashes($HTTP_POST_VARS['kenn_nr']);
}
mysql_select_db($database_ibl, $ibl);

$kenn = $_GET["kenn_nr"];
{ 
  echo $_POST["kenn_nr"];
}

mysql_query("DELETE FROM `konfektion` WHERE `kenn_nr` = '$kenn' LIMIT 1;");
// $row_Recordset1 = mysql_fetch_assoc($Recordset1);
// $totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html><?php
// mysql_free_result($Recordset1);
?>
<meta http-equiv="refresh" content="2;URL=http://localhost/delete3.php">
<div align="center"><strong>Der Artikel wurde erfolgreich gel&ouml;scht</strong></div>

Also ich denke ja das es so wie ich es gemacht habe gehen müsste ich hole den Inhalt auf dem Feld raus und setze es dann in die löschen funktion ein ... aber vllt mache ich es auch komplet flasch ... ich hoffe einer kann mir helfen.

Thx im Voraus

Matt
 
Wofür ist das "LIMIT 1"? Das hat da gar nichts zu suchen :)

Tipp: Lad dir mal die MySQL & PHP Dokumentation als CHM Datei herunter, da kannst du dann rasch nachschlagen.


Gruß Radhad
 
Zuletzt bearbeitet:
Das limit 1 kommt dirket vom phpadmin - ich hab aus aller not genau den msql befehl genommen den der auch vorgibt ...
aber selbst wenn das nicht drinsteht gehts immer noch nicht ...
 
Ist die Kenn-nr vorhanden? Was ist die Fehlermeldung? Hast du mal folgendes probiert:

PHP:
mysql_query("DELETE FROM `konfektion` WHERE `kenn_nr` = '$kenn' LIMIT 1;")OR die(mysql_error());

Folgendes kenn ich so auch nicht...
PHP:
$kenn = $_GET["kenn_nr"];
{ 
  echo $_POST["kenn_nr"];
}

kenn ich nur so:
PHP:
$kenn = $_GET["kenn_nr"];
echo $_POST["kenn_nr"];

Zusätzlich würde ich folgendes ausegeben lassen:
PHP:
$rows = mysql_affected_rows(); //Anzahl der geänderten Zeilen
echo $rows.' Zeile(n) wurden gelöscht.';

Dann siehst du auch, ob da überhaupt etwas passiert :)
 
Also ich habe 2 Datei zum löschen ... einmal die delete3.php ... da werden alle Datensätze angezeigt und dort habe ich ein feld erstellt names "kenn_nr" und einen button namens "submit"

Also ich versuch das mal schnell aus ...


// edit

hmm also ...

Das mit dem anzeigen was in der variablen steht ... das ist egal wie ich das schreibe ... ist genau gleich

und wenn ich das mit den geänderten zeilen einfüge dann wird mir angezeigt das 0 zeilen geändert wurden sind ... das ist garnicht mal so schlecht ... nur leider bringts mich nicht weiter.

Ich glaube der bekommt das schon hin und will auch löschen nur irgendwie bekommt er das nicht hin ... sonst würde ja en error kommen.
 
Kann net sein ... den ich hab ja mit

$kenn = $_GET["kenn_nr"];
echo $_POST["kenn_nr"];

das so gemacht das der anzeigt was ich da reingeschrieben hab...

und der zeigt mir da jedes mal die zahl an die ich in das textfeld eingetragen habe ... und die nr 1 ist der erste datensatz in der tabelle ...

also ich denke aber auch das es irgendwas in der richtung ist ... nur hab ich keinen plan wie ich das was machen soll ...
 
... wenn kenn_nr ein numerisches Feld ist, probiers mal so:
PHP:
'DELETE FROM `konfektion` WHERE `kenn_nr` = '.$kenn.' LIMIT 1;';

Gruß
.
 
Ah, jetzt she ich es auch ^^ Bei den " sieht das dann wie folgt aus:
PHP:
//von MattisGod
mysql_query("DELETE FROM `konfektion` WHERE `kenn_nr` = '$kenn' LIMIT 1;");

//Richtig wäre es so:
mysql_query("DELETE FROM `konfektion` WHERE `kenn_nr` = $kenn LIMIT 1;");
//oder (besser)
mysql_query("DELETE FROM `konfektion` WHERE `kenn_nr` = ".$kenn." LIMIT 1;");
Da WHERE kenn_nr = '$kenn' für Text ist und WHERE kenn_nr = $kenn für Zahlen
 
Zurück