Beiträge von smokey-joe
-
-
Hi@alls,
ich benötige Hilfe bei einem Script welches eigentlich nur einen Eintrag (name, gattung, geschlecht, picture) in die Datenbank schreiben soll.
PHP
Alles anzeigen<html> <body> <?php $name = $_POST['name']; $gattung = $_POST['gattung']; $geschlecht = $_POST['geschlecht']; echo $name; echo $gattung; echo $geschlecht; // Create connection $pdo = new PDO('mysql:host=localhost;dbname=aquarium', 'user', 'pw'); $statement = $pdo->prepare("INSERT INTO aqua(name, gattung, geschlecht) VALUES(:name, :gattung, :geschlecht)"); $statement->execute(array( "name" => "$name", "gattung" => "$gattung", "geschlecht" => "$geschlecht" )); if($statement->execute()){ echo "Fisch wurde hinzugefügt!"; }else{ echo "error"; } //$pdo = new PDO('mysql:host=localhost;dbname=aquarium', 'user', 'pw'); $neuer_user = array(); $upload_folder = '/var/www/html/db/uploads/'; //Das Upload-Verzeichnis $link = '/db/uploads/'; $filename = pathinfo($_FILES['datei']['name'], PATHINFO_FILENAME); $extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION)); //Überprüfung der Dateiendung $allowed_extensions = array('png', 'jpg', 'jpeg', 'gif'); if(!in_array($extension, $allowed_extensions)) { die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt"); } //Überprüfung der Dateigröße $max_size = 900*1024; //500 KB if($_FILES['datei']['size'] > $max_size) { die("Bitte keine Dateien größer 500kb hochladen"); } //Überprüfung dass das Bild keine Fehler enthält $allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detected_type = exif_imagetype($_FILES['datei']['tmp_name']); if(!in_array($detected_type, $allowed_types)) { die("Nur der Upload von Bilddateien ist gestattet"); } //Pfad zum Upload $new_path = $upload_folder.$filename.'.'.$extension; //Neuer Dateiname falls die Datei bereits existiert if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen $id = 1; do { $new_path = $upload_folder.$filename.'_'.$id.'.'.$extension; $id++; } while(file_exists($new_path)); } $new_dbpath = $link.$filename.'.'.$extension; //Alles okay, verschiebe Datei an neuen Pfad move_uploaded_file($_FILES['datei']['tmp_name'], $new_path); $neuer_user['picture'] = $new_dbpath; $statement = $pdo->prepare("INSERT INTO aqua (picture) VALUES (:picture)"); $statement->execute($neuer_user); echo "Bild erfolgreich hochgeladen:"; ?>
Einer ne Idee wie ich das umstricken kann damit ich mein Ziel erreiche ?
smokey-joe- - - Aktualisiert - - -
Das wird zweimal ausgeführt und erzeugt 2 Identische Einträge mit separater id(auto_increment)
PHP$statement = $pdo->prepare("INSERT INTO aqua(name, gattung, geschlecht) VALUES(:name, :gattung, :geschlecht)"); $statement->execute(array( "name" => "$name", "gattung" => "$gattung", "geschlecht" => "$geschlecht" ));
und diesen Eintrag hätte ich gerne irgendwie oben mit integriert
PHP$neuer_user['picture'] = $new_dbpath; $statement = $pdo->prepare("INSERT INTO aqua (picture) VALUES (:picture)"); $statement->execute($neuer_user);
Zur Info, bin wirklich blutiger Anfänger und hantiere mit gefährlichem Halbwissen.[Blockierte Grafik: https://www.php.de/core/images/smilies/icon_biggrin.gif]