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)){