Lister fichiers et comparer BD MySql

Résolu/Fermé
Yazou92 Messages postés 181 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 30 avril 2013 - 20 sept. 2011 à 13:39
Yazou92 Messages postés 181 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 30 avril 2013 - 20 sept. 2011 à 13:45
Bonjour,

J'ai créer une fonction php qui permet de scanner les fichiers d'un répertoire et sous-répertoire et de comparer ces fichiers à une base de donnée mysql qui contient un titre

(normalement celui des fichiers scanner auparavant avec une autre fonction)

Mais le problème c'est qu'il m'afficher tout les fichiers en temps que non trouvés.

Mon code et fait en PHP et j'utilise PDO pour les connections MySql

voila le code:
function ScanComp($rep) {

    $db = sqlConnect();

    $prepareStatement = $db->query("SELECT n_file FROM t_film ");
    $rows = $prepareStatement->fetchAll();


    foreach ($rows as $value) {
        $dir = opendir($rep);
        while ($file = readdir($dir)) {

            if (is_dir($rep . '/' . $file) && ($file != ".") && ($file != "..")) {
                ScanComp($rep . '/' . $file);
            } else if (($file != ".") && ($file != "..")) {
                $found = false;
            }
        }

        //echo $file;
        if ($file == $value['n_file']) {
            $found = true;
            break;
        }
        if ($found == false) {
            echo "NOT FOUND(" . $file . "|" . $value['n_file'] . ")<br />";
            $tab_nfound[] = $file;
        }
    }


    return $tab_nfound;
}


Merci d'avance ^^
A voir également:

1 réponse

Yazou92 Messages postés 181 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 30 avril 2013 16
20 sept. 2011 à 13:45
enfaite c'est bon, fallait que je modifie juste un truc.

Il fallait mettre le premier if dans la boucle while.

voila le code qui marche bien:

function ScanComp($rep) {

    $db = sqlConnect();

    $prepareStatement = $db->query("SELECT n_file FROM t_film ");
    $rows = $prepareStatement->fetchAll();


    foreach ($rows as $value) {
        $dir = opendir($rep);
        while ($file = readdir($dir)) {

            if (is_dir($rep . '/' . $file) && ($file != ".") && ($file != "..")) {
                ScanComp($rep . '/' . $file);
            } else if (($file != ".") && ($file != "..")) {
                $found = false;
            }
            if ($file == $value['n_file']) {
                $found = true;
                break;
            }
        }

        //echo $file;

        if ($found == false) {
            echo "NOT FOUND(" . $file . "|" . $value['n_file'] . ")<br />";
            $tab_nfound[] = $file;
        }
    }


    return $tab_nfound;
}
0