Haben Deine Links vielleicht immer dieselbe ID die sie der delete.php übergeben?
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Löschfunktion einer Datensatzauflistung (einzeln)
Einklappen
Neue Werbung 2019
Einklappen
X
-
Competence-Center -> Enjoy the Informatrix
PHProcks! • Einsteiger freundliche Tutorials • PreComposed Packages
-
Haben Deine Links vielleicht immer dieselbe ID die sie der delete.php übergeben?
was vl hilfreich wäre, die tabellen struktur, weil ich bin nicht sicher ob der key stimmt also die id ,, wie die heißt oder was des für a fels is ...PHP-Code:if ( $humans >= 2 ) {
war ();
}
Kommentar
-
von der Logik her ja. Hab mich nach asipaks beispiel gehalten.
Extern oder intern löscht er immer nur den ältesten Datensatz.
Das heist der nimmt immer die erste ID aus der schleife mit rüber in die nächste und dann bis die schleife zuende is.Ergo vermute ich dass was mit meienr Übergabe im Link nich in ordnung is.
Mir fällt noch grad auf dass ich garkeinen bezug auf meine Spalte: 'art_id' in der sql-Tabelle article bezug nehme.
JPformular1.php:
PHP-Code:<?php // Verbindung zur Datenbank und Artikelauflistung
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
$result=mysql_query("SELECT * FROM article");
while ($zeile=mysql_fetch_assoc($result))
{
echo 'Modeltyp:'.$zeile["art_name"].
'Farbe:'.$zeile["art_color"].
'Preis:'.$zeile["art_price"].
'<a href="delete.php?id='.$zeile['id'] . '">Löschen</a>';
}
?>
PHP-Code:<?php
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
if (!isset($_GET['id'])) {
header("Location: JPformular1.php");
exit;
}
$sql = "DELETE FROM article WHERE 'id' = " . (int)$_GET['id'] . " LIMIT 1";
mysql_query($sql) OR die (mysql_error());
?>
Kommentar
-
das würde aber nicht erklären warum immer das letzte glöscht wird
EDIT
Aber wie ich oben sehen kann bekommt er die aus der DB, dann dürfte meine Vermutung falsch sein.
Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?Competence-Center -> Enjoy the Informatrix
PHProcks! • Einsteiger freundliche Tutorials • PreComposed Packages
Kommentar
-
Doch. Wenn er aufgrund falscher oder vergessener Iteration in jedem Link die Id des letzten Eintrages stehen hat, würde es das sehr wohl erklären...
aber is eh egal ... die id wird ja korrekt übergeben ...
ähm, kurze frage, hast du schon mal versucht dir den SQL code ausgeben zu lassen?
post uns den mal !!PHP-Code:if ( $humans >= 2 ) {
war ();
}
Kommentar
-
Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?
also war meine vermutung vermutlich doch richtig :
was vl hilfreich wäre, die tabellen struktur, weil ich bin nicht sicher ob der key stimmt also die id ,, wie die heißt oder was des für a fels is ...PHP-Code:if ( $humans >= 2 ) {
war ();
}
Kommentar
-
@phil: wie ausgeben? mit <pre>? hab limit entfernt aber jetzt haut er mir alle datensätze mit einmal weg. (nach interner löschfunktion) mit der externen delete php hab ich das redirect noch nicht hinbekommen um damit weiter zu machen und er haut mri da ebenfalls alle mit einmal weg. Ich werds mal noch mit anderen Browser kurz testen weil immer ständig refreshen muss.
Habs mal ohne externe jetzt probiert aber da verhunzt er es mir auch:
PHP-Code:<?php
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
if (!isset($_GET['id'])) {
exit;
}
$sql = "DELETE FROM article WHERE 'id' = " . (int)$_GET['id'];
mysql_query($sql) OR die (mysql_error());
?>
<?php // Verbindung zur Datenbank und Artikelauflistung
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
$result=mysql_query("SELECT * FROM article");
while ($zeile=mysql_fetch_assoc($result))
{
echo 'Modeltyp:'.$zeile["art_name"].
'Farbe:'.$zeile["art_color"].
'Preis:'.$zeile["art_price"].
'<a href="JPformular1.php?id='.$zeile['id'] . '">Löschen</a>';
}
?>
Kommentar
-
@phil: wie ausgeben?
hab limit entfernt aber jetzt haut er mir alle datensätze mit einmal weg.
könntest du uns bitte deine Tabellen Struktur posten !!!
thxPHP-Code:if ( $humans >= 2 ) {
war ();
}
Kommentar
-
Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?
Natürlich reicht die Bedingung für den Löschvorgang selbst aus, wenn die ID eindeutig ist. Durch das LIMIT wird die Abfrage allerdings weiter optimiert und ist vergleichsweise schneller (nach meinen Erfahrungen).
Gruß[URL]http://hallophp.de[/URL]
Kommentar
-
TblStrk.: art_id art_cat_id art_name art_text art_pic art_sex art_size art_color art_price art_active_flag
vom theoretischen ansatz ist es doch egal ob er die ID aus der sql-table nimmt oder eine ID aufzählen lässt oder? Solang eine feste vergeben wurde is diese doch gültig. da aber in meinem code er sie nicht hochzählt sondern
Kommentar
-
aua !!!
sehr übersichtlich^^ *sarkasmus aus*
also ich würd mal des
PHP-Code:'<a href="JPformular1.php?id='.$zeile['id'] . '">Löschen</a>';
PHP-Code:'<a href="JPformular1.php?id='.$zeile['art_id'] . '">Löschen</a>';
und
PHP-Code:$sql = "DELETE FROM article WHERE 'id' = " . (int)$_GET['id'];
PHP-Code:$sql = "DELETE FROM article WHERE 'art_id' = " . (int)$_GET['id'];
EDIT:So langsam solltest du mal selber dein Hirn einschalten.
ich bin ja davon ausgegeangen, das er das angepasst hat !!!PHP-Code:if ( $humans >= 2 ) {
war ();
}
Kommentar
-
der zeigt mir grad nurnoch nen leeres div an - hab grad glaub irgendwas kaputtgedoktort mom pls
so isses grad alles innerhalb einer Datei:
PHP-Code:<?php
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
if (!isset($_GET['id'])) {
exit;
}
$sql = "DELETE FROM article WHERE 'art_id' = " . (int)$_GET['id'];
mysql_query($sql) OR die (mysql_error());
?>
<?php // Verbindung zur Datenbank und Artikelauflistung
mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("eshop");
$result=mysql_query("SELECT * FROM article");
while ($zeile=mysql_fetch_assoc($result))
{
echo 'Modeltyp:'.$zeile["art_name"].
'Farbe:'.$zeile["art_color"].
'Preis:'.$zeile["art_price"].
'<a href="JPformular1.php?id='.$zeile['art_id'] . '">Löschen</a>';
}
?>
Kommentar
-
Und?
Code:<?php error_reporting(E_ALL | E_STRICT);
http://www.php.de/php-einsteiger/489...nsammlung.html[URL]http://hallophp.de[/URL]
Kommentar
Kommentar