2017-10-31 19 views
0

foreachループ内にエラーを表示する最善の方法は何ですか?今、私はリストを読み、preg_matchを使って情報を分けています。どうすれば結果を調べて、エラーの結果を出力してから残りの部分を表示できますか?ここで最初にforeachループでエラー結果を表示しますか?

は、私はしかし、私はこの方法が

$mids = explode("\n", $_POST['invoiceCheck']); 
foreach ($mids as $mid){ 
    if(!empty($mid)) { 
      //Check for errors using mysqli 
      if(error) { 
       //Show error result 
       //Show error result 
       //Show error result 
      } else { 
       //Rest of results 
    } 
} 

INPUT

890 hello blah 
012 random blah 
123 test blah 
345 stack blah 
567 over blah 

OUTPUT

ERROR DUPLICATE: 123 already exists with test 
ERROR PARTIAL DUPLICATE: 567 already exists but with different name 
890 hello blah 
012 random blah 
345 stack blah 
ために彼らはまだ出力になると思うようにそれが見えるだろうと考えています何の一般的な考え方であります

結果が既にデータベースに存在するため、エラーが出力されます。配列を使ってそれらにエラーを割り当て、出力を得るために配列を並べ替える必要がありますか?

+3

: '場合(エラー){ //エラーを表示しないで、後で表示するためにどこかに格納する} else {//アイテムをまだ表示せず、エラーを表示した後に表示する。 } ' – FirstOne

+0

' if(error) '節にエラーを表示するだけでなく、エラーがなければ、その値を一時配列に格納し、' foreach'ループが終了したらその配列をループします誤差のない値? – freginold

答えて

0

あなたがしたいすべては、あなたがこのようにそれを行うことができ、エラーを生成しない項目の前にエラーを表示している場合:私たちはpseudocodelandであるので

$mids = explode("\n", $_POST['invoiceCheck']); 
$noErrors = []; //array to store items that don't generate an error 

// ----- loop through all items and print any errors ----- 

foreach ($mids as $mid){ 
    if(!empty($mid)) { 
     //Check for errors using mysqli 
     if(error) { 
      //display error 
      echo $errorMsg //replace this with your error message 
     } else { 
      //add value to array to display later 
      $noErrors[] = $mid; 
     } 
    } 
} 

// ----- print any items that didn't generate an error ----- 

foreach ($noErrors as $item) { 
    //display each non-error item 
    echo $item; 
} 
+1

ありがとう、これはまさに私がする必要があったものです –

関連する問題