Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Script PHP che da una cartella di immagini .png genera una tabella MySql

    Buongiorno a tutti,

    vi scrivo per chiedervi un'imbeccata.
    Esiste o si potrebbe fare uno scipt, mi verrebbe più facile in Php, per creare, partendo da una cartella con immagini .png una tabella mysql che, per ogni elemento, riporta in nome di ogni .png.
    ad esempio...
    cartella "immagini"
    dentro ci sono img1.png, img2.png.. imgN.png

    dare la cartella immagini in pasto ad uno script che mi genera, nel mio database mysql
    una tabella immagini
    dove ogni elemento della tabella riporta il campo nome che contiene il "nome" dell'immagine X della cartella immagini,
    e dunque
    la tabella immagini conterrà:
    el.1 [img1.png]
    el.2 [img2.png]
    ..
    el.N [imgN.png]

    scusate se ho fatto casino...
    oppure mi chiedevo se si potesse "passare" per un altro punto prima di arrivare a generare la tabella mysql..
    ad esempio passo la cartella immagini in pasto a nextgen gallery e faccio generare la galleria.
    Poi chiappo il file (xml?) dove c'è l'elenco delle immagini e lo "trasformo in uno script che in mysql mi genera il database...

    emm...
    davvero scusatemi se mi sono espresso male...
    cmq grazie a tutti e buonissima giornata!!!

    Stefano

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Ecco lo scriptino che crea la query. Ovviamente devi adattare le 3 variabili di configurazione alle tue esigenze :P


    Codice PHP:
    <?php 

    // Configurazione delle variabili
    //
    // path relativa della cartella da cui estrarre i nomi dei file
    $path 'nomecartella/';

    // Nome della tabella SQL in cui inserire i dati
    $table 'foto';

    // Il campo della tabella contenente i nomi dei file
    $field 'nomeFile';


    //
    // Definiamo la funzione che leggerà il contenuto di una directory
    // Essa restituirà un array con l'elenco dei file presenti (escludendo i riferimenti '.' e '..');
    // in caso di errore restituirà FALSE

    function getListFile($pathToDir) {
        
      if (
    $handle opendir($pathToDir)) {
        echo 
    "Impossibile leggere il contenuto della directory '$pathToDir'. Verificare che il percorso relativo sia corretto, che la cartella esista e che abbia i permessi di lettura.";
        return 
    FALSE;
      }


      
    //
      // Inizializziamo l'array
      
    $listDir = array();

      while ( (
    $file readdir($handle)) !== FALSE ) { 

        if (
    $file != '.' && $file != '..')
          
    $listFile[] = $file

      }

      
    closedir($handle);
      return 
    $listFile;

    }  
    // Fine della funzione getListFile()


    //
    // Eseguiamo la funzione che estrae i nomi dei file e uniamo l'array che li contiene in una sola stringa,
    // già pronta per essere inclusa nella query SQL

    $values '('.  implode('), ('getListFile($path))  .')';


    //    
    // Creiamo la query SQL
    $query "INSERT INTO  $table
                           (
    $file)
                   VALUES  
    $values";

    ?>
    A questo punto devi solo integrarlo con la connessione al database e dargli in pasto la query creata dinamicamente. Buon lavoro!
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Ciao!
    Grazie mille davvero, lo scipt è uno spettacolo, ma devo commettere qualche errore...
    allora, ho inserito la parte relativa alla connessione impostandola sul mio database
    poi ho creato nel database la tabella animals ed in essa ho creato il campo namepics dove vorrei finissero i nomi delle mie immagini.
    Per scaramanzia ho ficcato due valori a caso e poi ho fatto un echo di namepics ed i valori li vede senza problemi.

    Dunque ho inserito il codice dello script impostando:
    $path con l'url della mia cartella d'immagini, tipo
    $path = 'animals/';
    $table col nome della tabella, ossia animals
    $table = 'animals';
    ed $field = 'namepics';

    salvato, uploadato nella stessa cartella animals e lanciato dal web.
    ma non funge...
    ecco l'errore
    ***
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, postmaster@xiulong.it and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    ***

    Sono su aruba server linux!
    come posso fare?
    ma...non esiste il modo di passargli una query od una serie di query da phpmyadmin (con cui da aruba si amministra il database?

    Grazie mille e scusatemi ancora!!!

    Stefano

  4. #4
    ...perchè poi sarebbe ganzo che questo script diventasse il cuore di una pagina di amministrazione in cui cambio il nome della variabile $path ecc... e faccio generare tabelle rispetto ad altre directory...
    Sarebbe una ganzata!!! SOprettutto mi eviterebbe d'inserire a mano un paio di migliaia di nomi...
    Ciao e buona serata a tutti

    Stef

  5. #5
    Ciao Sky, scrivo questo post perché ho utilizzato il codice che hai postato ma mi da un errore che, essendo a digiuno di php, non so risolvere.
    In pratica, testando in locale, mi da:

    Impossibile leggere il contenuto della directory 'foto/'. Verificare che il percorso relativo sia corretto, che la cartella esista e che abbia i permessi di lettura. Warning: implode() [function.implode]: Bad arguments. in C:\percorso\percorso\nomefile.php on line 49
    Sto provando a creare un file xml (ci riesco) ma la variabile $values mi viene scritta all'interno dell'xml così "()"
    immagino perché non legga questo , getListFile($path)) . in
    $values = '('. implode('), (', getListFile($path)) .')';

    Sono sicuro che il path sia quello. Il file php e la cartella foto sono entrambi nella root.

    Qualche suggerimento?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.