Datensätze löschen - kleines Script, große Kopfschmerzen
Hallo Allerseits!
Mit dem angehängten Script sollen Datensätze auf Wunsch gelöscht werden. Ein Link, der auch die ID übergibt, führt hierzu. Es wird dann Lösch-Link angezeigt und wenn man ihn klickt, bekommt man die Meldung, dass der jeweilige Datensatz gelöscht wurde. Wird er aber nicht. Geht man nur mit der Maus über diesen Lösch-Link, sieht man unten im Brwoser, dass hinter der ID der "&aktion=loeschen"-Aufruf mit angezeigt wird, womit die übergebene ID dann natürlich nicht mehr korrekt ist. Also statt "...id=3" steht dann da "...id=3&aktion=loeschen". Im error.log wird der Fehler rund: In der Zeile 16 soll "aktion" undefiniert sein. Es beschämend, wie lange ich nun vergeblich nach dem Fehler gesucht habe... ich gebe nun auf. Kann mir bitte jemand helfen? PHP-Code:
LG Tenhigo |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Das "'aktion' undefiniert" aus der error.log ist kein Fehler sondern eine Notice und stammt recht wahrscheinlich nicht von dem Aufruf, wenn der Link geklickt wurde, sondern von dem Aufruf vorher, wenn nur der Link angezeigt wird (dann ist ja noch keine aktion gesetzt).
Setze mal ein PHP-Code:
|
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Hallo MatMel!
Deine Vermutung war korrekt. Ich habe mich darauf hin auf die Suche begeben, wo genau der Fehler versteckt sein könnte. Dabei habe ich entdeckt, dass ich eine ID-Abfrage verschlampt habe. Aber nachdem ich sie eingesetzt habe, kam keine Rückmeldung mehr, dass die Daten übergeben wurden. Im Ausgabe-php wurden sie jedoch angezeigt. Irgendwo muss in der ID-Übergabe der Fehler stecken.... Hier mal alle zum Projekt gehörigen phps, vielleicht ist das aufschlussreicher... fern_kurs_tabelle.php: PHP-Code:
PHP-Code:
PHP-Code:
PHP-Code:
LG Tenhigo |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Mach mal in dieser Zeile:
PHP-Code:
Bekommst du keine Notice, dann lass dir $id mal per echo ausgeben und schau nach was drinsteht. Wenn das falsch ist hast du einen Ansatz... Wenn die id korrekt ist, mach mal ein echo in dem if, bei dem $aktion geprüft wird. Ob er da überhaupt reinspringt. Wenn nicht gib dir $aktion aus und schau nach warum nicht. Zu guter letzt kannst du noch den Query ausgeben lassen und überprüfen. |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Hi MatMel!
Ich hoffe, ich habe Dich richtig verstanden... Für fern_kurs_loeschen.php, sowohl mit als auch ohne @, aus dem error.log: In Zeile 17: PHP Notice: Undefined index: aktionWas mir allerdings gar nichts sagt. Kannst Du was damit anfangen? Ich habe ein Echo auf $id gesetzt, bekam jedoch keine Rückmeldung. Liege ich damit richtig, wenn ich vermute, dass da einfach nichts übergeben wird? Also beim Setzen der ID in fern_kurs_tabelle kann nicht so wahnsinnig viel falsch laufen, denn die Nummern exstieren ja. Und alles, was mit $id eingesetzt wird, wird bei der Abfrage der php-Scripts mit einer entsprechenden Nummer ausgegeben. Auch der Inhalt wird übertragen. Beides, ID und Inhalt, wird also zwar korrekt ausgegeben, aber vielleicht nicht richtig einander zugeordnet...? Ich habe die letzten Stunden noch weiter gesucht. In fern_kurs habe ich ja die vier Zeilen neu eingetragen. Könnte es sein, dass die ganzen Schwierigkeiten hierauf beruhen? PHP-Code:
Also entweder wird die ID nicht richtig übergeben oder sie wird nicht richtig ausgelesen. Gibt es das: die fortlaufende Zahl wird ausgegeben, aber nicht als den jeweiligen Datensätzen zugehörige ID erkannt? Wenn das möglich wäre, dann würde sich auch das fehlerhafte Löschen erklären, oder? Sorry, wenn meine Überlegungen hier völlig schwachsinnig wirken sollten - PHP ist für mich ein völlig neues Feld. LG Tenhigo |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Also gut ich glaub ich weiß was das Problem ist:
PHP-Code:
Daher kommen auch die zwei Warnings aus der error.log, die du geposted hast. Die Verbindung wird nämlich in Form einer Zahl gespeichert, in deinem Fall wohl 5. Hinter dieser Zahl steckte aber keine gültige Verbindung mehr da sie ja schon in der 3. Zeile geschlossen wurde. Also mach das mysql_close weg und es sollte wunderbar laufen. Warum bei der Ausgabe von $id nichts herauskam wundert mich. Denn wenn wirklich nichts übergeben worden wäre, dann hätte in der error.log noch sowas auftauchen müssen: In Zeile xx: PHP Notice: Undefined index: id Ist es vielleicht möglich, dass du das echo gesetzt hast, bevor $id zugewiesen wurde? |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Hallo zusammen,
wenn ich das richtig sehe, wird PHP-Code:
PHP-Code:
PHP-Code:
|
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
@ MatMel
Die Fehlermeldungen im error.log verschwanden in der Tat, nachdem ich das erste mysql_close gelöscht habe. Das freut mich schon mal sehr, auch wenn es nichts am fehlerhaften Löschen geändert hat. Das echo habe ich jetzt nochmal gesetzt. Du hast Recht - ich muss es gestern in die falsche Zeile gepackt haben. Es kommt also nun die korrekte ID dabei heraus. Trotzdem wird nichts gelöscht. @@Work Deine ID-Übergabe-Variation habe ich ausprobiert, das Problem bleibt aber auch hierbei leider bestehen. LG Tenhigo |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Mach bitte den Code von @Work wieder raus oder ersetze die ' die er geposted hat durch ". Sonst kommt nämlich sowas am Schluss raus:
Code:
<tr><td align ="center"><a href="fern_kurs_loeschen.php?id='.12.'&aktion=loeschen">ID '.12.' Datensatz löschen!</a></td></tr> Wenn id richtig übergeben wird kann es ja fast nur noch am Query liegen... Also gib dir mal $anfrage in dem if per echo aus und schau was da drin steht. Falls du phpMyAdmin zur Hand hast kannst du das Query da auch mal ausführen und schauen was es sagt. |
AW: Datensätze löschen - kleines Script, große Kopfschmerzen
Stimmt, genau das ist dabei raus gekommen.
Das echo auf $abfrage ergibt (bei "Löschung" von Nr. 12): DELETE FROM fern_kurs WHERE id = 12 Ein echo auf mysql_query($abfrage, $db_verbindung ergab, wie zu erwarten war, mysql_query(DELETE FROM fern_kurs WHERE id = 12, Resource id #5) PhpMyAdmin hatte ich noch nicht, habe es aber eben mal runter geladen. Erstaunlicherweise frage ich mich gerade, wie man das überhaupt ans Laufen kriegt... Ich begebe mich mal dran... LG Tenhigo |
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:02:23 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.