Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    accoppiata DB e filesystem...

    scusate il titolo ma non sapevo proprio come chiamarlo...

    Vorrei sapere se esiste già una funzione che avendo dei valori in un DB che sono nomi di file e i file relativi nell'FTP mi fa un report che mi dice quali valori sono ok e invece quali file sono presenti che non hanno corrispondenza nel DB e quali valori esistono nel DB che non hanno il file nell'FTP..
    so che non è facile ma non ho trovato niente da nessuna parte... magari cerco male...

    grazie a chiunque si interesserà alla questione...

  2. #2
    Cosa intendi con:
    mi fa un report che mi dice quali valori sono ok


    Se intendi come credo io, con opendir() e reddir(), riesci a leggere il contenuto di una cartella, e lo salvi in un array.
    Interroghi poi il DB ed estrapoli i nomi dei file presenti (fetchando i risultati in un altro array), con un semplice ciclo per ogni chiave del primo array usi in_array() e fai il raffronto con quello del fetching... quindi controlli se per ogni file c'è una corrispondenza o meno nel DB.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Tiro su questo 3d per condividere questo script un po' banale ma per me è stato l'uovo di Colombo, visto che appunto era facile ma non avevo pensato a questa soluzione.
    Ringrazio alcio74 che mi ha illuminato su in_array() che non conoscevo...
    lo script che confronta i valori presi dal DB con i file presenti nella cartella non lo metto perchè trooooppo banale... basta ciclare i risultati e vedere se con file_exists esiste il file...
    passo direttamente al secondo, quello che legge i file in una cartella, li mette in un array e mi dice se hanno corrispondenza con un campo del DB...
    Codice PHP:
    // io ho messo il desktop per assurdo e funziona.. sto facendo questo lavoro in locale... 
    // ma volendo si può evitare di mettere il percorso assoluto e mettere il nome di una cartella nel webserver...
    // la path probabilmente sarà senza slash..

    $path "C:\Documents and Settings\utente\Desktop";

    #apriamo la cartella 
    $cartella opendir($path);

    #creiamo un ciclo che legga i contenuti e li metta nell'array
    while ($file readdir($cartella)) {
    $file_array[] = $file;

    }

    #facciamo un ciclo foreach per prendere gli elementi
    foreach ($file_array as $file) {

    #tutti tranne quelli che iniziano per "." o per ".."
    if ( $file == ".." || $file == ".") {
    continue;
    }
    }
    $con=mysql_connect($hostname,$username,$password) or die("Connessione non riuscita: " mysql_error());
        
    mysql_select_db("nome_DB") or die("Selezione del database non riuscita");
        
    $np "SELECT * FROM tabella";
        
    $query mysql_query($np);
        while(
    $riga mysql_fetch_array($query)) {
    // nella mia tabella i nomi relativi ai PDF non hanno estensione, in quanto sono nomi.
    // aggiungo quindi alla variabile l'estensione altrimenti non trova niente..
        
    $riga $riga["nome"] . ".pdf";

    // nella mia tabella ci sono campi con il nome vuoti, per vari motivi.
    // per non avere righe vuote a video uso il controllo qua sotto...
    if ($riga["nome"] != '') {
    if (
    in_array($riga$file_array)) {
        echo 
    "Trovato $riga 
    "
    ;
    } else {
        echo 
    "[b]NON TROVATO $riga [/b]
    "
    ;
    }
    }
        } 

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.