仅针对foreach循环显示一条消息

mar*_*rio 3 php foreach

当遍历foreach下面的循环时echo,每次执行循环时都会得到一个输出。如何将这些消息简化为最后一条消息?

即只有"success messages"回声"Success",如果发生错误("fail" or "nothing saved" message)则回声"Fail"。一旦发生错误,循环就不应停止,而应完全进行。最后,我只想知道是发生错误还是未保存结果。

if(!isset($_POST["submitbutton"])) {
  echo "Click this button to save your input.";
} else {
  foreach($_POST['tipp_id'] as $key => $tipp_id) {
    if($tipp_id > 0) {
      $result="
      //SQL query
      ";
      $query=mysqli_query($conn,$result);
      if($query) {
        echo "Success.<br>";
      } else {
        echo "Fail.<br>";
      }
    } else {
      echo "Nothing saved.";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Ana*_*Die 5

每个人都给你一个答案。我的建议如下:

<?php
$failed_query = array(); // create an empty array to get which query fails
$failed_count = 0; // count to come to know how many query failed
$success_count = 0; // count to come to know how many query succeed
if(!isset($_POST["submitbutton"])) {
  echo "Click this button to save your input.";
}else {
  foreach($_POST['tipp_id'] as $key => $tipp_id) {
    if($tipp_id > 0) {
      $result="//SQL query";
      $query=mysqli_query($conn,$result);
      if($query) { // if query runs
        $success_count++; // increase success counter
      } else {
        $failed_count++; // increase failed counter
        $failed_query[] = $result; // insert failed query to the array
      }
    }
  }
}
if($success_count > $failed_count){
    echo "final output is success";
 }else{
   echo "final output is failed";
 }
echo "query executed successfully(Number)".$success_count;
echo "query execution failed(Number)".$failed_count;
echo "Failed queries are <br/>";
echo "<pre/>";print_r($failed_query);
?>
Run Code Online (Sandbox Code Playgroud)

注意:-

1.您想要的最终状态将以成功或失败的形式出现。

2.它将清楚地显示成功执行了多少查询以及失败了多少查询。

3.您还可以检查哪些查询失败以及为什么(通过检查失败的数组)