Du hast zudem ein Sprachgewirr drinnen, das du mal aufräumen solltest.
Auktion auf englisch, ergibt dann auction_images
Da du den Rest in der Tabelle objekte aber auch auf deutsch und klein geschrieben hast, solltest du dich auch konsequent daran halten Dann eben
und password wird zu passwort, allein da hätte ich schon mehrmals ein Tippfehler drin.
Das Passwot-Feld brauchst du auch nur ein mal. Halte die Benutzer nicht für blöd.
hier löscht du erst das Bild, aber wenn dein insert fehl schlägt ist auch das Bild weg.
Lösche das Bild im Ordern erst, wenn du auch sichergestellt hast, dass die Angaben in der DB aktualisiert worden sind. Prüfe dazu auch den Errorcode oder den Rückgabewert vom insert.
Ich sehe auch keine Verbindung zwischen dem gespeicherten Objekt und dem Bild.
Wenn etwas geändert werden soll, wie beispielsweise der Titel, aber der Rest nicht, also auch nicht die Bilder, dann ist der Parameter nicht gesetzt, dies prüfst du mit isset und nicht mit empty
Siehe den Fehler hier
Für update gilt folgendes:
Erst id holden, damit du den richtigen Datensatz in der Tabelle objekte änderst.
Zugehörige Bildid holen und merken, für Tabelle auktion_images.
Dann schauen ob submit gesetzt wurde, also wurde was abgeschickt.
Jetzt schaust du was zu ändern ist.
Also titel, plz, oder neues Bild Dann update der Tabelle objekte mit SQL ist das i.O. gibt execute True zurück, erst jetzt schaust du ob auch ein Bild dabei ist.
Wenn nicht dann ist dein update fertig,
Sonst anhand der Bildid den alten Bildnamen auslesen und merken z.B. in $old_image.
Bildwerte in DB speichern(update) mit neuem Namen natürlich, anhand der Bildid.
Bild selbst im Bilderverzeichnis ablegen(neuen Namen hast du ja)
Dann erst altes Bild löschen, der Name steht in $old_image. Mann könnte auch das Bild mit gleichen Namen überschreiben im Bildverzeichnis, das nur damit keiner meckert.
Jetzt ist der upload abgeschlossen und du kannst das neue Bild mit den zugehörigen Objektdaten dem Benutzer zur Kontrolle anzeigen.
Programmieren überlasse ich dir.
Code:
CREATE TABLE `auktion_images`
Da du den Rest in der Tabelle objekte aber auch auf deutsch und klein geschrieben hast, solltest du dich auch konsequent daran halten Dann eben
Code:
FILE_NAME zu `datei_name` varchar(255) COLLATE utf8_bin NOT NULL, FILE_SIZE zu `datei_groesse` varchar(255) COLLATE utf8_bin NOT NULL, FILE_TYPE zu `datei_typ` varchar(255) COLLATE utf8_bin NOT NULL
Das Passwot-Feld brauchst du auch nur ein mal. Halte die Benutzer nicht für blöd.
PHP-Code:
<?php unlink('image_uploads/'.$reihe["FILE_NAME"]); ... $query = "INSERT into auktion_images(`ANGEBOT_ID`, `FILE_NAME`, `FILE_SIZE`,`FILE_TYPE`) VALUES(:ANGEBOT_ID, :FILE_NAME, :FILE_SIZE, :FILE_TYPE)"; $stmt = $pdo->prepare($query); ... ?>
Lösche das Bild im Ordern erst, wenn du auch sichergestellt hast, dass die Angaben in der DB aktualisiert worden sind. Prüfe dazu auch den Errorcode oder den Rückgabewert vom insert.
Ich sehe auch keine Verbindung zwischen dem gespeicherten Objekt und dem Bild.
Wenn etwas geändert werden soll, wie beispielsweise der Titel, aber der Rest nicht, also auch nicht die Bilder, dann ist der Parameter nicht gesetzt, dies prüfst du mit isset und nicht mit empty
Siehe den Fehler hier
PHP-Code:
!empty($_FILES['files']['tmp_name'])
Erst id holden, damit du den richtigen Datensatz in der Tabelle objekte änderst.
Zugehörige Bildid holen und merken, für Tabelle auktion_images.
Dann schauen ob submit gesetzt wurde, also wurde was abgeschickt.
Jetzt schaust du was zu ändern ist.
Also titel, plz, oder neues Bild Dann update der Tabelle objekte mit SQL ist das i.O. gibt execute True zurück, erst jetzt schaust du ob auch ein Bild dabei ist.
Wenn nicht dann ist dein update fertig,
Sonst anhand der Bildid den alten Bildnamen auslesen und merken z.B. in $old_image.
Bildwerte in DB speichern(update) mit neuem Namen natürlich, anhand der Bildid.
Bild selbst im Bilderverzeichnis ablegen(neuen Namen hast du ja)
Dann erst altes Bild löschen, der Name steht in $old_image. Mann könnte auch das Bild mit gleichen Namen überschreiben im Bildverzeichnis, das nur damit keiner meckert.
Jetzt ist der upload abgeschlossen und du kannst das neue Bild mit den zugehörigen Objektdaten dem Benutzer zur Kontrolle anzeigen.
Programmieren überlasse ich dir.
Kommentar