Ragazzi, ne approfitto della vostra competenza per risolvere dei problemi, che purtroppo il "programmatore autodidatta" incontra più spesso del previsto.
Dunque, prima di tutto è bene spiegarvi in cosa consiste il progetto che sto tentando di realizzare:
si tratta di un CMS di un sito portfolio, con circa 5 o 6 pagine.
Esempio:
pag1 = graphic design
pag2 = packaging
pag3 = web design
pag4 = illustration etc etc.
In ogni pagina, i lavori saranno presentati in questo semplice modo:
ci sarà un titolo, una descrizione, e una serie di foto.
Tramite l'accesso a una pagina di amministrazione, l'utente dovrà poter essere in grado di inserire nuovi lavori, inserendo in un form il titolo, la descrizione, le foto e scegliendo da un menù a tendina la pagina nella quale dovrà esser postato.
Se si fosse trattato solo di testo, sarei stato in grado di farlo, purtroppo le immagini complicano un pò il discorso.
Veniamo al punto:
nel mio database ho due tabelle,
"post2"
cui campi sono "id_post", "titolo" e "descrizione" (successivamente sarà inserito anche il campo "sezione")
"post2_image"
cui campi sono "id_image", "image"
A questo punto, se carico i dati tramite il mio form, le immagini vengono caricate come array, con un loro ID e il titolo e la descrizione vengono caricati con un'altro ID.
Suppongo che per richiamare i dati, l'array e il titolo e la descrizione debbano avere lo stesso ID.
Come posso fare?
Ho provato anche a inserire la query all'interno del ciclo foreach, le immagini venivano caricate singolarmente, ma ognuna aveva un id diverso; ho anche quindi pensato di inserire un altro campo nella tabella post2_image, chiamato id_post, nel quale inserire l'ID corrispondente al titolo e alla descrizione della tabella post2, ma non so come inserirlo.
Ecco il codice:
$titolo = $_POST["title"];
$titolo = addslashes(stripslashes($titolo));
$descrizione = $_POST["testdata"];
$descrizione = addslashes(stripslashes($descrizione));
$query = "INSERT INTO post2 SET
titolo = '$titolo',
descrizione = '$descrizione'";
mysql_query($query, $db);
$target_path = "temp/";
$uploads_dir = $target_path;
foreach ($_FILES["Filedata"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["Filedata"]["tmp_name"][$key];
$name = $_FILES["Filedata"]["name"][$key];
$query2 = "INSERT INTO post2_image SET
image = '$name'";
mysql_query($query2, $db);
$ext = substr(strrchr($name, '.'), 1);
switch(strtolower($ext)) {
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
case 'png':
case 'doc':
case 'txt':
move_uploaded_file($tmp_name, "$uploads_dir/$name");
break;
default:
exit();
break;
}
}
}
echo 'RETURN DATA!';
?>
Spero di essere stato chiaro.
Vi ringrazio della disponibilità, Lorenzo