当循环通过下面的 foreach
循环时,每次执行循环时我都会得到一个 echo
输出。我怎样才能将这些消息减少到只有一条最终消息?
即如果只有"success messages"
then echo "Success"
,如果发生错误("fail"or "nothing saved"message)
then echo “失败”
。一旦发生错误,循环将不会停止,而是完全继续进行。最后我只想知道是否发生错误或结果未保存。
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.";
}
}
}
最佳答案
您可以创建一个数组和一些计数变量来获取成功/失败计数以及哪个查询不成功。
<?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);
?>
注意:-
1.您将以成功或失败的形式获得您想要的最终状态。
2.它会让您清楚地了解有多少查询执行成功,有多少失败。
3.您还可以检查哪些查询失败以及原因(通过检查失败的数组)
关于php - 只为 foreach 循环显示一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38019156/