迭代两个whiles并比较项目

Hi I want to compare that if the files that I have in a directory are the same that I have saved in the db. Here is my code I cant see why its only iterate in the first item of the directory and not all of they:

$dir = opendir("galerias/programas");
    while ($elemento = readdir($dir)){
        if( $elemento != "." && $elemento != ".."){
            if( is_dir($path.$elemento) ){
                echo "<p><strong>CARPETA: ". $elemento ."</strong></p>";
            }else{
                while( $row = mysql_fetch_assoc($tabla1)){
                    if($row['imagen'] == $elemento){
                        echo $row['imagen'];
                        echo "<br>";
                    }
            }
        }
    }
}

Your inner while loop will loop over all the results of your query only once.

If you want to iterate again over all the results of your query, your must rewind them using mysql_data_seek($tabla1, 0); after your inner while loop.

By the way, the old mysql_* functions are deprecated in PHP, and you should consider switching to PDO or mysqli_*.

$dir = opendir("galerias/programas");
    while ($elemento = readdir($dir)){
        if( $elemento != "." && $elemento != ".."){
            if( is_dir($path.$elemento) ){
                echo "<p><strong>CARPETA: ". $elemento ."</strong></p>";
            }else{
                while( $row = mysql_fetch_assoc($tabla1)){
                    if($row['imagen'] == $elemento){
                        echo $row['imagen'];
                        echo "<br>";
                    }
            }
        }
    }
}

You can change:

if( $elemento != "." && $elemento != ".."){

to:

if(!is_dir($elemento)){

But you would be better off just pulling a query on the DB to an array and then compare the array with in_array(). That way you can parse out your dir values and do whatever you want to with them.