Witajcie, próbuje swoich sił w php PDO i napotkałam podczas przerabiania tutorialii na problem mianowicie chce przy zapisie w jednym wpisie do bazy przesłać do kolumn kilka zdjęć (np2 lub więcej max 5) i tekstu, mam już działający kod ale wysyła tylko jedno zdjęcie myślałam, że jeśli zrobię analogicznie z większą ilością nie powinno być problemu a tu jednak
if(isset($_REQUEST['btn_insert']))
{
try
{
$author = $_REQUEST['txt_author']; //textbox name "txt_author"
$title = $_REQUEST['txt_title']; //textbox name "txt_title"
$excerpt = $_REQUEST['txt_excerpt']; //textbox name "txt_excerpt"
$content = $_REQUEST['txt_content']; //textbox name "txt_content"
$image_file = $_FILES["txt_file"]["name"];
$type = $_FILES["txt_file"]["type"]; //file name "txt_file"
$size = $_FILES["txt_file"]["size"];
$temp = $_FILES["txt_file"]["tmp_name"];
$path="upload/".$image_file; //set upload folder path
if(empty($author)){
$errorMsg="Please Enter Name";
}
else if(empty($image_file)){
$errorMsg="Please Select Image";
}
else if($type=="image/jpg" || $type=='image/jpeg' || $type=='image/png' || $type=='image/webp') //check file extension
{
if(!file_exists($path)) //check file not exist in your upload folder path
{
if($size < 1000000) //check file size 1MB
{
move_uploaded_file($temp, "upload/" .$image_file); //move upload file temperory directory to your upload folder
}
else
{
$errorMsg="Your File To large Please Upload 5MB Size"; //error message file size not large than 5MB
}
}
else
{
$errorMsg="File Already Exists...Check Upload Folder"; //error message file not exists your upload folder path
}
}
else
{
$errorMsg="Upload JPG , JPEG , PNG & WEBP File Formate.....CHECK FILE EXTENSION"; //error message file extension
}
if(!isset($errorMsg))
{
$insert_stmt=$db->prepare('INSERT INTO blog(blog_date,blog_author,blog_title,blog_excerpt,blog_content,blog_image) VALUES(:fdate,:fauthor,:ftitle,:fexcerpt,:fcontent,:fimage)'); //sql insert query
$insert_stmt->bindValue(':fdate',time());
$insert_stmt->bindParam(':fauthor',$author);
$insert_stmt->bindParam(':ftitle',$title);
$insert_stmt->bindParam(':fexcerpt',$excerpt);
$insert_stmt->bindParam(':fcontent',$content);
$insert_stmt->bindParam(':fimage',$image_file); //bind all parameter
if($insert_stmt->execute())
{
$insertMsg="File Upload Successfully........"; //execute query success message
header("refresh:3;index.php"); //refresh 3 second and redirect to index.php page
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
i teraz powieliłam dla zdjęcia jeszcze jeden input i dodałam do nazwy 1 -> tzn w input - name="txt_file1", następnie pozostałe wartości które przyjmują od tego input info do wstawienia do bazy
$image_file1 = $_FILES["txt_file1"]["name"];
$type1 = $_FILES["txt_file1"]["type"]; //file name "txt_file"
$size1 = $_FILES["txt_file1"]["size"];
$temp1 = $_FILES["txt_file1"]["tmp_name"];
to samo z
$insert_stmt->bindParam(':fimage1',$image_file1);
i teraz nie bardzo wiem (czytaj skończyły mi się już pomysły z kombinacjami ;/ ) jak prawidłowo powinno się zrobić
$path1="upload/".$image_file1;
i dalej sprawdzanie czy już taki plik istnieje tu nie wiem jak zrobić po " , " żeby sprawdzał czy istnieje zdjęcie dla każdego z osobna które ma być wgrane
if(!file_exists($path, $path1)
i podanie ścieżki zapisu tu też nie wiem jak powinno się prawidłowo to dodać, zrobiłam tak
move_uploaded_file($temp1, "upload/" .$image_file1);
jak pisałam wcześniej kombinuje już od jakiegoś czasu szukałam na necie ale w większości pokazane jest dla jednego zdjęcia lub przy multi zapisuje na raz ale każde w nowym wierszu a chciała bym to zapisać w jednej tabeli do jednego id nie wiem czy to jasno opisałam no chyba że tak się nie robi to prosiła bym o podpowiedz lub nakierowanie co z czym i jak to powinno się robić.