首页 文章

foreach 循环结果分配给进度变量

提问于
浏览
1

我有一个包含 4 个文本字段和多个文件上传(5 files/fields)的表单:

数据库表有 9 个字段,4 个用于文本字段,其余 5 个应该包含表单上传图像的 URL 路径,对于数据库中的 5 个 URL 字段,它们简称为 image1,image2,image3 ......

通常我们收集表单数据并执行我们需要插入或更新的任何 MySQL 查询,但我无法弄清楚如何将foreach循环结果分配给 progressive/dynamic 变量名称,以便在迭代后我只做 1 MySQL query/insert。

$inum=0;

foreach ($_FILES["prodi"]["error"] as $key => $error)
{
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["prodi"]["tmp_name"][$key];
        $name = $_FILES["prodi"]["name"][$key];
        $type = $_FILES["prodi"] ["type"] [$key];
        if ($type=="image/jpg" OR $type=="image/jpeg" OR $type=="image/pjpeg" OR $type=="image/png")
        {move_uploaded_file($tmp_name, "../zzz/zzz-images/$name");
        $ipath=$domain."/zzz/zzz-images/".$name;
        $inum++;
        $i="image".$inum; // STUCK AT THIS POINT //}
}

所以,如果我在循环中回显$i$ipath,我会得到:

image1 (The table field storing the url)  /  *ttp://www.whaterver......(the url stored)

image2 (The table field storing the url)  /  *ttp://www.whaterver......(the url stored)

依此类推,直到数组中没有更多文件要处理,但我如何将每个循环结果设置为一个新变量,以便 mysqli 查询的工作方式如下:

mysqli_query($con,"INSERT INTO `table1` (`field1`,`field2`,`field3`,`field4`,`image1`,`image2`,`image3`,`image4`,`image5`) VALUES ('field1',field2','field3','field4','loop_result1','loop_result2','loop_result3' etc. etc. etc.);")

2 回答

  • 1

    使用 php,您可以使用变量来创建变量名称!那么你被困在哪里你应该:

    $varname  = "image".$inum; // "image1" for example
    $$varname = $ipath; // this magic puts the value of $ipath into the variable $image1, $image2, etc
    

    这是一个工作的例子:https://eval.in/83538

  • 0

    试试这个:

    $inum++;
    ${'image' . $inum} = $ipath; // STUCK AT THIS POINT //}
    }
    

    见:PHP 中的动态变量名称

相关问题