Odpowiedź: dokładnie, chcę aby więcej niż jedna wartość zostały zapisane w danej kolumnie - ich liczba ma zależeć od liczby przysłanych plików, wybranych przez użytkownika dzięki multiple w formularzu.
Cześć. Rozchodzi się o to, że mam stworzoną tabelę w mysql, która odpowiada za wyświetlanie przesłanych plików od administratora do danego użytkownika.
Czyli działa to tak, że "administrator" wybiera użytkownika z listy (pobranej z bazy danych), do którego chce przesłać dane pliki (jpg, pdf itd, bez ustalonej z góry liczby, czy to 1 plik czy 5) - użytkownik jest pobierany przez get 'user'. Dochodzimy więc do ostatecznego etapu, w którym administrator wybrał użytkownika i dzięki przyciskowi ładującemu plik z dysku "przeglądaj" wybiera za pomocą np ctrl klika plików z dysku, które chce przesłać danemu użytkownikowi.
Oczywiście w momencie przesłania jednego pliku nie ma problemu, ponieważ wtedy w kolumnie tabeli "pliki" pojawia się adres pliku, który został zapisany na dysku.
Problem jest taki, jak to zrobić aby w danej kolumnie zapisać kilka plików jednocześnie. W jaki sposób to zrobić, a raczej czy można do danej kolumny wrzucić kilka wartości (więcej niż jedną) ?
W formularzu jest opcja multiple, pod wybór kilku plików jednocześnie. Pytanie, jak zmodyfikować php? Jak to ugryźć (chociaż teoretycznie) ?
<?
require_once('cm/connect.php');
require_once('connect-pliki.php');
$usr=$_GET['username'];
if (isset($_POST['submit'])) {
$user_id =trim($_POST['user_id']); $nadawca =trim($_POST['nadawca']); $odbiorca =trim($_POST['odbiorca']); $pliki = trim($_POST['pliki']); $pliki_size = $_FILES['pliki']['size'];
if ($_FILES['pliki']['error'] == 0) {
$target = UPLOADPATH . $pliki;
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$dbc) {
}
$query = "INSERT INTO pliki_od_administratora VALUES (0,NOW(),'administrator','$usr','$pliki')"
or
die("Zapytanie do niepoprawne");
mysqli_query($dbc, $query);
echo '<p class="er">Pliki zostały wysłane</p>';
mysqli_close($dbc);
}
}
}
else {
echo '<p class="er">Wystąpił problem przy przesyłaniu plików.</p>'; }
}
?>
<div class="zaplecze_inputy_na_czarno">
<p>Wyślij plik do użytkownika
<?php echo $usr; ?> 2/2</p>
</div>
<div class="spoz_menu_logowania_usuwanie">
<div class="spoz_zaloguj">
<div id="dodawanie-plikow">
<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="pliki[]" multiple="multiple"/> <br/><br/>
<input type="submit" value="Wyślij pliki" name="submit" />
</form>
</div>
</div>
</div>
Po przeróbkach poniższy fragment kodu, a dokładniej echo wyświetla przesłaną nazwę plików prawidłowo, lecz dokładnie to samo muszę wstawić do kolumny "pliki" w mysql, poprzez zmienną "tablica_z_plikami"
.....
$pliksy = trim($_FILE['pliki[]']);
if (isset($pliksy['name'])){
foreach ($pliksy['name'] as $tablica_z_plikami){
echo $tablica_z_plikami.'<br />';
}
if ($_FILES['pliksy']['error'] == 0) {
$target = UPLOADPATH . $pliksy;
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$dbc) {
}
$query = "INSERT INTO pliki_od_administratora VALUES (0,NOW(),'administrator','$usr','$tablica_z_plikami')"
.....