W ramach jednego formularza chcę przesłać do bazy 3 pola tekstowe, jedno zdjęcie i 1 plik. Zrobiłem tak jak poniżej - używam do tego 2 odrębnych metod na klasie obiekcie sheet.
Zastanawiam się czy jest to optymalne rozwiązanie... być może dobre praktyki są inne (można wykorzystać jedną metodę?) - prośba o sugestię od bardziej doświadczonych ode mnie:)
Oczywiście odrębnie zaprogramuje sobie przeniesienie pliku z folderu tymczasowego do docelowego (to wiem jak zrobić)
Mój kod
index.php
<?php
include("classes/classes.php");
if( $_SERVER['REQUEST_METHOD']=="POST")
{
$sheet = new Sheets();
$result1 = $sheet->insert_data($_POST);
$result1 = $sheet->insert_files($_FILES);
}
?>
.... i dalej formularz
<form method="post" enctype="multipart/form-data">
Author<br>
<input type="text" name="author"><br>
Title<br>
<input type="text" name="title"><br>
Tonation<br>
<input type="text" name="tonation"><br>
Image<br>
<input type="file" name="image"><br>
File<br>
<input type="file" name="file"><br><br>
<input type="submit">
</form>
plik z klasą:
class Sheets
{
public function insert_data($data)
{
$author = $data['author'];
$title = $data['title'];
$tonation = $data['tonation'];
$query = "INSERT INTO sheets(author, title, tonation) VALUES('$author', '$title', '$tonation')";
$DB = new Database;
$DB->save($query);
}
public function insert_files($data)
{
$images = $data['image']['tmp_name'];
$file = $data['file']['tmp_name'];
$query = "INSERT INTO sheets (images, file) VALUES ('$images', '$file')";
$DB = new Database;
$DB->save($query);
}
}