Hi@alls,
ich benötige Hilfe bei einem Script welches eigentlich nur einen Eintrag (name, gattung, geschlecht, picture) in die Datenbank schreiben soll.
PHP
<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:";
?>
Alles anzeigen
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]