- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- da directory foto a tabella mysql
-
da directory foto a tabella mysql
Ciao a tutti, avrei un quesito,
dovrei fare in modo di inserire in una tabella ;il percorso, il nome e l'id di immagini contenute in una directory per poter essere caricate dinamicamente.
Sono riuscito ad impostare in php apertura, e lettura della directory, e scrittura della tabella ma non riesco a capire come fare in modo che lo script legga i dati e li immagazzini nella tabella...
Intuisco utilizzo di cicli e array!!!grazie
sandro1492
-
Ehm... non ho capito una cosa... mi puoi mostrare la struttura della tabella del database?
Comunque i cicli li so, se mi mostri la struttura ti do il codice pronto
-
Ciao Sandro1492,
per prendere i file puoi utilizzare la funzione glob().
Questa cerca i file in una directory secondo la pattern specificata come primo argomento e restituisce un array associativo i cui elementi sono le path dei file trovati.
Puoi successivamente utilizzare un iterazione (ciclo) per stampare i valori nell'array e basename() per prendere i nomi dei file da questi ultimi.
Gli id sono gli indici a base 0 dell'array restituito da glob().
Ti faccio un esempio veloce:
[php]<table>
<tr><td>ID</td><td>Percorso</td><td>Nome</td></tr>
<?php
$arrayfile = glob('dir/*');foreach($arrayfile as $id => $percorsofile)
echo '<tr><td>'.$id.'</td><td>'.$percorsofile.'</td><td>'.basename($percorsofile).'</td></tr>';?>
</table>[/php]Spero di essere stato utile.
Ciao!
-
Ciao e grazie per le risposte..
il tuo suggerimento probid riguarda la tabella a video ma io intendevo l' inserimento delle immagini da una directory ad in una tabella nel db mysql...scusatemi se non sono stato chiaro!
Per questo non riesco a comprendere come creare lo script che me lo faccio in automatico o semiautomatico
ciao e grazie
sandro1492
-
Scusa, è colpa mia che non avevo letto il titolo.
Allora, supponiamo di aver una tabella Immagini con i campi "Id" unique o pkey, "Nome" e "Percorso".
Se puoi utilizzare l'estensione php mysqli è possibile costruire una stringa contenente query multiple da eseguire con una chiamata unica a mysqli::multi_query():[php]
<?php//operazioni di connessione e selezione del Database mySQL
$connessione = new mysqli('localhost', 'root', '','Immagini');//prendo tutti i file nella directory "Immagini"
$arrayfile = glob('Immagini/*');//Inizializzo una variabile stringa che conterrà la query da eseguire
$query = '';//Ciclo gli elementi dell'array $arrayfile
foreach($arrayfile as $id => $percorsofile)
{
//Costruisco la query di inserimento
$query .= "INSERT INTO Immagini (Id,Nome,Percorso) VALUES ('".$id."','".basename($percorsofile)."','".$percorsofile."') ON DUPLICATE KEY UPDATE Id=Id;";
}//All'uscita dal ciclo ho le query costruite dalle varie iterazioni, mi basta eseguirle.
$connessione->multi_query($query);?>
[/php]Altrimenti devi usare le vecchie funzioni mysql:
[PHP]<?php
//operazioni di connessione e selezione del Database mySQL
$connessione = mysql_connect('localhost','root','');
mysql_query('USE Immagini',$connessione);//prendo tutti i file nella directory "Immagini"
$arrayfile = glob('Immagini/*');//Ciclo gli elementi dell'array $arrayfile
foreach($arrayfile as $id => $percorsofile)
{
//Eseguo la query
mysql_query("INSERT INTO Immagini (Id,Nome,Percorso) VALUES ('".$id."','".basename($percorsofile)."','".$percorsofile."') ON DUPLICATE KEY UPDATE Id=Id",$connessione);
}?>[/PHP]
Ciao!