用php更新多个图像

jdzmm42g  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(280)

我面临一些关于在php中更新多个图像的问题。实际上,我有8个按钮用于添加和更新mysql数据库中的8个图像和8个单独的列,所以当我单独更新图像时,它要么更新所有8个列的值,即使我只选择image1和image2,它也会更新所有列,image3到image7将在数据库中包含空值
如果我使用 && “and”运算符
或者它不更新列图像(image、image1、image2等)的任何值,。。。。图片7)
如果我使用 || “or”运算符
但是我想要的是,如果我想更新image1-image8中的任何一个图像,那么只有该图像应该得到更新&数据库中的其余值应该与以前的值保持相同,images列中的值就是图像的名称。

if(empty($image) && empty($image1) && empty($image2) && empty($image3) && empty($image4) && empty($image5) && empty($image6) && empty($image7) ){

        $UpdateSql = "UPDATE car SET mobile='$mobile' WHERE id=$id";

        $result = mysqli_query($conn, $UpdateSql);

    }else{

        $UpdateSql = "UPDATE car_list SET mobile='$mobile', image='$image', image1='$image1',image2= '$image2', image3='$image3',image4='$image4',image5='$image5', image6='$image6',image7='$image7' WHERE id=$id";

        $result = mysqli_query($conn, $UpdateSql);

    }


z5btuh9x

z5btuh9x1#

您需要根据图像变量的值构建一个sql查询。例如:

$mobile = "someMobileNo";
$id = 1234;

$image = "";
$image1 = "";
$image2 = "some.png";
$image3 = "";
$image4 = "";
$image5 = "someOther.png";
$image6 = "yetAnother.png";
$image7 = "";

$imageVars = array($image, $image1, $image2, $image3, $image4, $image5, $image6, $image7,);

$updateImages = "";

for($i = 0; $i < 8; $i ++){
    if(!empty($imageVars[$i])){
        //the image variable has a value, add it to the UPDATE query
        $imageNum = (string)$i; //cast index as string
        if($imageNum == "0"){
            //first image does not have a number
            $imageNum = "";
        }
        $updateImages .= ",image" . $imageNum . "='" . $imageVars[$i] . "'";
    }
}

$UpdateSql = "UPDATE car_list SET mobile='$mobile'" . $updateImages . " WHERE id=$id";

echo $UpdateSql;

//OUTPUT:
//    UPDATE car_list SET mobile='someMobileNo',image2='some.png',image5='someOther.png',image6='yetAnother.png' WHERE id=1234

相关问题