为什么foreach循环会在输入相似的情况下产生不同的结果?

时间:2016-10-29 22:31:25

标签: php mysql

我有一个foreach循环,它接收复选框数据并将其作为自己的行插入到数据库中。在每种情况下,第一个成功输入,而第二个和之后未能进入。我知道数据正在被读取,因为我通过PHP回应它,但它只是没有将它插入到数据库中。

以下是代码:

if(isset($_POST['submit'])){

    $names=$_POST['names'];

    $check=$_SESSION['user'];

    $queryNUMERO2 = "SELECT * FROM `meeting` WHERE chairman='".$check."' ORDER BY id DESC";

    if($resultNUMERO2 = mysqli_query($db, $queryNUMERO2)){

        foreach($names as $user){

            $row2 = mysqli_fetch_array($resultNUMERO2);

            $meetingId = $row2['id'];
            $meetingDate = $row2['time'];
            $meetingTitle = $row2['title'];

            echo $user;

            $insertQuery = "INSERT INTO `usermeet` (`id`, `username`, `date`, `title`) VALUE ('".$meetingId."', '".$user."', '".$meetingDate."', '".$meetingTitle."')";

            if($result = mysqli_query($db, $insertQuery)){

                echo "success";

            }
            else{
                echo "failure";
            }

        }

    }

}

当我这样做时,服务器的输入是:(用户名)然后(成功)第一个。然后它会说(username2)(失败)(username3)(失败),即使它反复进行相同的查询。谁能指出为什么?

我在查询中尝试VALUES,但结果相同。

以下是用户勾选复选框的代码。

      <?php
      $num=0;
      $query = 'SELECT * FROM `users`';
         if(!($result = mysqli_query($db,$query))){
            echo 'Retrieval of data from Database Failed - #'.mysqli_errno().': '.mysqli_error();
        }
      while( $row = mysqli_fetch_array($result) ){
          echo "

          <tr>
             <th></th>
             <th>{$row['firstname']} {$row['lastname']}</th>
             <th><div class=\"form-check\">
                <label class=\"form-check-label\">
                   <input class=\"form-check-input\" type=\"checkbox\" name=\"names[]\" id=\"blankCheckbox\" value=\"{$row['username']}\">
                </label>
             </div></th>
             <th></th>
          </tr>
          </form>

        ";
     }
     ?>

0 个答案:

没有答案