以下のループforeach
をループすると、ループが実行されるたびにecho
の出力が得られます。これらのメッセージを最終メッセージ1つに減らすにはどうすればよいですか?foreachループのメッセージを1つだけ表示
I.e. "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.";
}
}
}
は、forループで変数を設定し、設定するためにそれを使用しますforループの外側にあるメッセージです。 –
の 'foreach'の前に' $ fail_happened = false; 'のようなブール型変数を追加し、デフォルトで' false'を指定すると、ループでエラーが発生したときに 'true'に設定します。最後に、値を確認します。 –
あなたのコードとこれまでの両方の答えに欠けているようなものは、トランザクションが必要なエラーの場合には何も保存しないことです。 –