Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 迭代两次并比较项目_Php_Mysql - Fatal编程技术网

Php 迭代两次并比较项目

Php 迭代两次并比较项目,php,mysql,Php,Mysql,嗨,我想比较一下,如果我在一个目录中的文件与我在数据库中保存的文件相同。 这是我的代码,我不明白为什么它只在目录的第一项中迭代,而不是全部迭代: $dir = opendir("galerias/programas"); while ($elemento = readdir($dir)){ if( $elemento != "." && $elemento != ".."){ if( is_dir($path.$elemento)

嗨,我想比较一下,如果我在一个目录中的文件与我在数据库中保存的文件相同。 这是我的代码,我不明白为什么它只在目录的第一项中迭代,而不是全部迭代:

$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>";
                    }
            }
        }
    }
}
$dir=opendir(“galerias/programas”);
而($elemento=readdir($dir)){
如果($elemento!=“&&&$elemento!=”){
if(is_dir($path.$elemento)){
回声“地毯:“.$elemento.””;
}否则{
而($row=mysql\u fetch\u assoc($tabla1)){
如果($row['imagen']==$elemento){
echo$row['imagen'];
回声“
”; } } } } }
您的内部
while
循环将只循环一次查询的所有结果

如果您想再次迭代查询的所有结果,必须使用
mysql\u data\u seek($tabla1,0)回放它们在内部while循环之后

顺便说一下,旧的<代码> MySqL**/Cuff>函数在PHP中被弃用,您应该考虑切换到PDO或<代码> MySqLI**<代码> > < /P>

$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>";
                    }
            }
        }
    }
}
致:


但最好是将数据库上的查询拉到一个数组中,然后将该数组与in_array()进行比较。这样,您就可以解析出dir值并对其执行任何操作。

您是否可以包括创建$tabla1的程序部分?您是否可以将文件列表发布到
galerias/programas
?另外,您使用什么查询从MySQL中提取记录?
if( $elemento != "." && $elemento != ".."){
if(!is_dir($elemento)){