mit Button eine Zeile in mysql löschen
Michael
- php
Hallo an alle,
in einem php-Script will ich über ein Button eine Zeile aus einer mysql-Datenbank löschen.
Wie kann ich also eine delete-Anweisung mit einem Button verknüpfen und muß ich in der Verknüpfung meine Datenbank mit mysql_connect($hostname, $benutzer, $passwort) öffnen?
Wer kann mir mit einem entsprechenden Befehl oder Script helfen??
Bin für jede hilfe dankbar.
Gruß Michael
<?php
##################
$db_link=mysql_connect("localhost","user","pass");
$db_name='db_name';
##################
if($do=='del')
{
$result_del_adresse=mysql_db_query("$db_name","DELETE FROM adressen WHERE id='$id'", $db_link);
)
##################
print '
<HTML>
<HEAD>
<TITLE>Adressenverwaltung</TITLE>
<HEAD>
<BODY>
<TABLE>
<TR>
<TD><B>Vorname</TD>
<TD><B>Nachname</TD>
<TD><B>Strasse</TD>
<TD><B>PLZ</TD>
<TD><B>Ort</TD>
<TD><B>Aktion</TD>
</TR>
';
##################
$result_adressen=mysql_db_query("$db_name","SELECT * FROM adressen WHERE 1 ORDER BY nachname", $db_link);
while($Adresse=mysql_fetch_array($result_adressen))
{
print "
<TR>
<TD>$Adresse[vorname]</TD>
<TD>$Adresse[nachname]</TD>
<TD>$Adresse[strasse]</TD>
<TD>$Adresse[plz]</TD>
<TD>$Adresse[ort]</TD>
<TD><A HREF="adressen.php?do=del&id=$Adresse[id]"><IMG SRC="button.gif"></A></TD>
</TR>
";
}
##################
print '
</TABLE>
</BODY>
</HTML>
';
##################
?>
Hello,
if($do=='del')
Das sieht schon sehr schmutzig nach "register_globals = on" aus
Dein Script tut auch nichts gegen SQL-Injection.
Du verlässt dich da scheinbar blind auf die Magic Quotes von PHP, die aber keinesfalls auchreichend sind.
Außerdem würde ich für das Löschen immer vorher den Satz anzeigen lassen, seine ID in die Session eintragen lassen (Transformation) und den Index aus der Anzeigeliste in der Session verwenden.
So ist sichergestellt, dass nur die vorher auch gelisteten Datensätze gelöscht werden können.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Das sieht schon sehr schmutzig nach "register_globals = on" aus
Dein Script tut auch nichts gegen SQL-Injection.
Du verlässt dich da scheinbar blind auf die Magic Quotes von PHP, die aber keinesfalls auchreichend sind.
Außerdem würde ich für das Löschen immer vorher den Satz anzeigen lassen, seine ID in die Session eintragen lassen (Transformation) und den Index aus der Anzeigeliste in der Session verwenden.
So ist sichergestellt, dass nur die vorher auch gelisteten Datensätze gelöscht werden können.
Du bist ja ein ganz Schlauer, was? Wollt ihr hier eigentlich helfen oder nur zeigen, wie toll ihr doch seid? Hilft dem Fragesteller dein Posting weiter? Glaubt Du, er versteht das?
hi,
Du bist ja ein ganz Schlauer, was?
Ja, er hat Ahnung von dem, wovon er redet - falls du das meintest.
Wollt ihr hier eigentlich helfen oder nur zeigen, wie toll ihr doch seid?
Was willst du mit _solchen_ Postings?
Hilft dem Fragesteller dein Posting weiter?
Wenn er erkennt, dass es mit deinem "Lösungsvorschlag" erhebliche Probleme und Risiken gibt, dann hat es ihm bereits weitergeholfen.
Ob er sie gleich versteht und durchschaut, steht auf einem anderen Blatt. Aber er kann ja im Zweifelsfalle einfach mal nachfragen.
Glaubt Du, er versteht das?
Hast _du_ verstanden, wo die Probleme und Risiken deines Vorschlages liegen?
Wenn ja, warum machst du dann derart unzureichende und gefährliche Vorschläge, ohne den geringsten Hinweis darauf?
In der Form, wie du ihn gemacht hast, war dein Vorschlag nur in ganz geringem Maße eine Hilfe - weitaus mehr war er eine _Falle_.
gruß,
wahsaga
Hallo an alle,
was soll daß? gegenseitiges besserwisserei vorzuwerfen bringt mir als Fragesteller überhaupt nichts!!
Wenn jemand einen besseren Script hat dann soll er/sie es zeigen!
Am besten mit Kommentar warum und wieso sein Script besser ist als dem anderen seins.
Gegenseitig die Köpfe einschlagen Hilft niemanden, dem Fragesteller nicht und andere die das gleiche Problem haben!!
Gruß Michael
Hello,
Wenn jemand einen besseren Script hat dann soll er/sie es zeigen!
Am besten mit Kommentar warum und wieso sein Script besser ist als dem anderen seins.Gegenseitig die Köpfe einschlagen Hilft niemanden, dem Fragesteller nicht und andere die das gleiche Problem haben!!
Wie wäre es denn, wenn Du mein Posting lesen würdest, die Begriffe nacheinander in die Archivsuche eingäbest, und erstmal eine halbe Stunde läsest?
Dann wirst Du wahrscheinlich mit einem haufen neuer Fragen wiederkommen, und wir werden sie Dir gerne beantworten. In diesem Forum sind die Antwortenden alle gerne und kostenlos, weil unsere meisten Fragesteller nette und höfliche Menschen sind. Das ist uns dann Lohn genug ;-))
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hi,
Wenn jemand einen besseren Script hat dann soll er/sie es zeigen!
Ein solches Forum ist nicht dazu da, fertige Scripte auf dem Silbertablett zu servieren.
Am besten mit Kommentar warum und wieso sein Script besser ist als dem anderen seins.
Tom hat die gängigen Stichworte genannt.
Sich ggf. darüber zu infomieren obliegt dem, der die Technik einsetzen will.
gruß,
wahsaga
In der Form, wie du ihn gemacht hast, war dein Vorschlag nur in ganz geringem Maße eine Hilfe - weitaus mehr war er eine _Falle_.
Eine Falle? Bestimmt programmiert er gerade das neue online-Banking für die Deutsche Bank. Hast schon recht, da hätte ich schon auf die eklantanten Sicherheitsmängel meiner Lösung hinweisen müssen.
Für mich bist Du nicht mehr als ein Besserwisser, der scheinbar auch jeglichen Realismus verloren hat!
Tommy
Hello,
Für mich bist Du nicht mehr als ein Besserwisser, der scheinbar auch jeglichen Realismus verloren hat!
Bah, was seid ihr für ne fiese Möpp
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tommy,
Für mich bist Du nicht mehr als ein Besserwisser, der scheinbar auch jeglichen Realismus verloren hat!
was soll Dein verbales Foulspiel? Dir wurden ja schon die Tipps für Fragende verlinkt, bitte lies auch noch den vorhergehenden Abschnitt.
Hast schon recht, da hätte ich schon auf die eklantanten Sicherheitsmängel meiner Lösung hinweisen müssen.
Wie Chraecker Heller es einmal so schön formuliert hat:
"Uns gibt es nur mit Meinung und ungebetener Beratung."
Bitte lies noch einmal die Tipps für Fragende, insbesondere die zwei Abschnitte nach der Aufzählung.
Du hast eine unkommentierte Lösung hingeschrieben, die zum einen nicht erläutert, warum sie Deiner Meinung nach das Problem des OP lösen kann. Sie ist damit nicht besonders geeignet, um die Lösung zu _verstehen_. Zum anderen weist Deine Lösung fachliche Mängel auf, auf die Tom hingewiesen hat.
Viele, die hier regelmäßig mitlesen oder Antworten posten, wissen um die Häufigkeit der Probleme, die aus schlampigem Code wie Deinem resultieren.
Frage:
"Diesen Code habe ich aus dem Forumsposting https://forum.selfhtml.org/?t=127541&m=823234 übernommen. Dort hat das geklappt. Warum läuft das Skript bei mir nicht?"
Antwort:"
"Es könnte daran liegen, dass bei Deinem Server die Einstellung register_globals=off verwendet, schon Jahre Standard und empfohlen. Das von Dir verlinkte Skript verläßt sich aber auf register_globals=on. Weitere Fehlermöglichkeiten, Fehler beim Umgang mit Array-Elementen, dazu die Verwendung einer seit PHP 4.0.6 vom 23.06.2001 als veraltet geltenden Funktion machen diesen Code, der invalides HTML produziert, wenig empfehlenswert."
Nach Lektüre der beiden Threads mit Deiner Beteiligung solltest Du meiner Meinung nach Deine PHP-Kenntnisse aktualisieren und lernen, vernünftig mit Kritik umzugehen.
Freundliche Grüße
Vinzenz
hallo tommy,
vielen herzlichen dank für diese SUPER hilfe.
Du warst mir eine sehr große Hilfe.
DANKE
Gruß Michael
PS:
Oben öffnest die if anweisung mit eine { und hörst 2Zeilen später mit ) auf, solltest du ändern in }
Oben öffnest die if anweisung mit eine { und hörst 2Zeilen später mit ) auf, solltest du ändern in }
Entschuldigung. Ich habe es nur schnell zusammengekloppt und nicht noch vorher getestet.
Tommy