【问题标题】:How to use single for each loop for multiple array to update single sql statement如何为多个数组的每个循环使用单个来更新单个 sql 语句
【发布时间】:2016-06-30 18:19:32
【问题描述】:

我想对两个数组分别使用一个。

array 1 : 有图片路径(路径根据用户需要是动态的)

数组 2:具有每个图像的值描述字段(描述根据用户需要是动态的)

我想只使用一个 sql 语句在 sql 表中插入两个数组。

<?php $sql="INSERT INTO posts(title,description,category,createdBy,pictureURL,CreatedAt) VALUE ('$title',
                '$description','$category','$creatdby','Admin/PostImages/$finalpath',now());"; 
                $result = mysqli_query($conn,$sql);
                if($result)
                {

                     $upload_directory = 'PostImages/';                      
                      $field_values_array = $_REQUEST['desc'];
                          $x=0;  
                          foreach($field_values_array as $value1){
                          foreach ( $_FILES['photo']['name'] AS $key => $value ){
                               //Move file to server directory
                               if(move_uploaded_file($_FILES["photo"]["tmp_name"][$x], $upload_directory . $_FILES["photo"]["name"][$x])){
                               $finalpath=$upload_directory . $_FILES["photo"]["name"][$x];
                               }
                               if (isset($_SESSION['p_id'])){
                        $p_id = $_SESSION["p_id"];
                        }
                              $sql1="INSERT INTO `postimages`(`p_id`,`description`, `img_path`) VALUES ('$p_id','$value1','$finalpath')"; 
                                  $result1 = mysqli_query($conn,$sql1);                 
                              $x++;  
                          }
                    }       
                        header("Location: uploadpost_test.php");                        

                }
                else
                {
                    echo "Error: " . $sql . "<br>" . $conn->error;
                } ?>

【问题讨论】:

    标签: php sql for-loop


    【解决方案1】:

    我重构并清理了您的代码。试试这个。

                        if(isset($_SESSION['p_id']))
                        {
                            $p_id = $_SESSION["p_id"];
                        }
                        $values = '';
                        $next = ',';
                        $len = count($field_values_array);
                        foreach($field_values_array as $x=>$value1)
                        {
    
                            if(move_uploaded_file($_FILES["photo"]["tmp_name"][$x], $upload_directory.$_FILES["photo"]["tmp_name"][$x]))
                            {
                               $tmp_name = $_FILES["photo"]["tmp_name"][$x];
                               $finalpath = $upload_directory.$tmp_name;
                               $next = $x >= $len-1 ? '' : $next;
                               $values .= "VALUES('$p_id','$value1','$finalpath')".$next;
                            }
                        }
                        $sql1="INSERT INTO `postimages`(`p_id`,`description`, `img_path`) $values"; 
                        $result1 = mysqli_query($conn,$sql1);
    

    【讨论】:

    • 这段代码没有将图片和desc插入到表格中
    • 照片字段也必须使用数组
    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2013-05-13
    • 2016-12-18
    • 1970-01-01
    相关资源
    最近更新 更多