Как лучше всего сначала отобразить ошибки в цикле foreach? Прямо сейчас я читаю список и разделяю информацию, используя preg_match. Как я могу просмотреть результаты и сначала вывести результаты об ошибках, а затем показать остальные?
Вот общее представление о том, как я думаю, что это будет выглядеть, однако я думаю, что таким образом все равно будут выводить их в порядке
$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
}
}
ВХОД
890 hello blah
012 random blah
123 test blah
345 stack blah
567 over blah
ВЫХОД
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
Ошибка результатов исчезла, потому что они уже существуют в моей базе данных. Нужно ли им присвоить ошибку с помощью массива, а затем пересортировать этот массив, чтобы получить вывод?
Если все, что вы хотите сделать, это отобразить ошибки перед элементами, которые не генерируют ошибку, вы можете сделать это следующим образом:
$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;
}
Других решений пока нет …