我有代码,我在我的网站的一个部分上传了6张图片,该代码工作正常,现在,我需要更新或更改上传的任何图片,我的意思是我需要更改图像编号3和6,例如,所以我写了这段代码
$i=0;
while ($i<=5){
if (!empty($_FILES['ufile']['name'][$i]) and ($_FILES['ufile']['name'][$i]<>"")){
$path[$i] = "../slider_new/".$_FILES['ufile']['name'][$i];
$path[$i] = str_replace(' ', '_',$path[$i]);
copy($_FILES['ufile']['tmp_name'][$i], $path[$i]);
echo "Ruta :".$path[$i]."<BR/>";
echo "File Name :".$_FILES['ufile']['name'][$i]."<BR/>";
echo "este es $i ",$i;
$sql="UPDATE accommo_main_images SET name='".$_FILES['ufile']['name'][$i]."',ruta='".$path[$i]."' where num='$num'";
$res=mysqli_query($cnx,$sql);
}
$i=$i+1;
}
这个想法是检查名称,当它与“”不同时更新图像,这就是想法,但我不知道为什么代码用图像更新所有6个图像我选择了。
问题是什么?
谢谢你的帮助
答案 0 :(得分:0)
其中num =&#39; $ num&#39;&#34 ;;
您使用SQL语句WHERE NUM = $ num。但是,你没有在你给我们的代码中的任何地方设置$ num。很可能你永远不会设置$ num的值。你最好是$ i。 我猜你也可能在你的上传代码中犯了同样的错误(初始上传),因此所有的图片都有数字= 0。 您现在正在更新具有数字0的图像或空字符串(取决于数据库字段类型),这些图像将匹配您在那里的每个图像。
尝试运行此代码并检查表条目。
$res = mysqli_query($cnx,"SELECT num,name FROM accommo_main_images");
var_dump(mysqli_fetch_all($res,MYSQLI_ASSOC));