Come faccio a passare l'id del database alla variabile della cartella?
Come faccio a passare l'id del database alla variabile della cartella?
eh...hai fatto una buona scelta a prendere l'id e non il titolo,poiché dimenticavo che alcuni caratteri (tipo "è") diventano altro quando crei la cartella....
cmq per il momento ti dò una soluzione macchinosa ,ma è l'unica che mi viene in mente
dopo aver fatto la insert della parte testuale dell'annuncio nel db, fai una select della riga appena inserita e ti prendi l'id...poi fai la creazione della cartella....cmq ti suggerisco di rendere unico il campo "titolo" (unique) così non potranno essere inseriti annunci con lo stesso titolo...
Scusate mi sono perso nella prima soluzione, quindi ho deciso di optare per le tabelle.
Ho fatto così :
La tabella Annunci contiene :
ID | Marca | Modello | ...
La tabella Immagini contiene :
ID | ID_Annuncio | Nome | Percorso
Premesso che uso MySql come database e che il sito verrà montato su Hosting Aruba Linux Base dove non sono supportate le tabelle InnoDb con il relativo utilizzo delle chiavi esterne.
La cosa che vorrei capire è dove inserire il tag di input per l'upload delle immagini. Ti ricordo che ho la pagina inserisciautoveicoli.php che contiene il form di inserimento che punta alla pagina inserisciautoveicolo.php che contiene la query di inserimento. Potrei inserire più di un tag di input file per l'upload delle immagini all'interno del form della pagina inserisciautoveicoli.php ma rimane comunque limitato come numero di immagini. Ad esempio se inserisco tre input avrò al massimo tre immagini per annuncio.
Inoltre vorrei creare un effetto del genere per le gallerie dei miei annunci:
http://www.forteimmobiliare.com/sale...e-Affitto.aspx
Grazie, è un pò complicato ma spero di farcela, è il mio ultimo scoglio per terminare l'applicazione.
secondo me non conviene dare la possibilità di caricare infinite foto! Insomma, per il tipo di sito potresti fissare un massimo di foto (per es 10)
pure che dai un limite di 50 foto, non bastano?
ti allego un esempio che ho appena fatto sul caricamento di tante immagini, riproducilo giusto per capire come funziona,poi lo integri nella tua form!
inserisci.php
insert.phpCodice PHP:<body>
<form action="insert.php" method="post" enctype="multipart/form-data">
<?php
for($i=0;$i<10;$i++){$num=$i+1;
print"<label>inserisci immagine $num <input type='file' name='foto$i' id='$i'/></label>
\n";
}
?>
<input type="submit" lang="it" value="invio" />
</form>
</body>
Codice PHP:<?php
for($i=0;$i<10;$i++)//supponendo che siano massimo 10 i file caricabili
{
if(isset($_FILES['foto'.$i]))
{
$num=$i+1;
$file=$_FILES['foto'.$i];
$nome= $file['name'];
$path="cartella/".$nome; //ho chiamato "cartella" la directory con le immagini
$vett=explode("/",$file['type']);
$tipo=$vett[0];
if($tipo!="image"){}//non mi carico file che non sono immagini :)
else
{
@move_uploaded_file($file['tmp_name'],$path) or die("errore upload, controllare percorso");
print"immagine $num caricata con successo;
";
}//fine caricamento
}
}
?>
puoi farlo pure con 200 foto! basta cambiare l'indice massimo dei due cicli for...
ci sono funzioni javascript che ti permetteranno di nascondere gli input da non utilizzare, ad esempio l'utente ne può far apparire 5 alla volta ,mmammano che li deve utilizzare (se li deve usare tutti)...poi si pensa
Ciao grazie mille per la dritta. Ho fatto in questo modo :
************************************************** **************
for($i=0;$i<10;$i++)//supponendo che siano massimo 10 i file caricabili
{
if(isset($_FILES['foto'.$i]))
{
$Risultato=mysql_query("SELECT id_autoveicolo FROM autoveicoli", $connessione);
if (!$Risultato)
{
die ("La tabella selezionata non esiste" . mysql_error());
}
$riga=mysql_fetch_array($Risultato);
$id_autoveicolo = $riga['id_autoveicolo'];
@mkdir($id_autoveicolo);//creo la cartella che ha per nome il titolo dell'annuncio
$num=$i+1;
$file=$_FILES['foto'.$i];
$nome= $file['name'];
$path="$id_autoveicolo/".$nome; //ho chiamato "cartella" la directory con le immagini
$vett=explode("/",$file['type']);
$tipo=$vett[0];
if($tipo!="image"){}//non mi carico file che non sono immagini [img]images/smilies/smile.gif[/img]
else
{
@move_uploaded_file($file['tmp_name'],$path) or die("errore upload, controllare percorso");
print"immagine $num caricata con successo;
";
}//fine caricamento
}
}
Comunque si bastano anche solo 10 foto.
Ho ancora qualche cosa da chiederti. Grazie anticipatamente.
@mkdir($id_autoveicolo);
Con questo comando creo la cartella con il nome dell'ID ma come faccio a prendere l'ID se l'annuncio ancora non esiste? Quindi con queste righe di codice mi prende il primo ID e mi crea la cartella con il numero del primo ID della prima riga.
Dovrei inserire gli input per le immagini in un secondo momento? Nel senso prima inserisco l'annuncio testuale e poi in un secondo momento prelevo l'ID e creo la cartella?
Grazie per il prezioso aiuto.