Intereting Posts
Исключить одну страницу из функции После обновления страницы на всех страницах сайта использовался шаблон index.php WordPress вставить запрос, но запрос обновления не запускается Поиск по нескольким категориям Получение идентификатора изображения заголовка, даже если оно задано случайным Переписывает иерархические таксономии в постоянной ссылке плагин для публикации сообщения в социальных сетях через администратора? Как показывать только избранные продукты в wooCommerce с помощью функции function.php Добавить персонализированный пост Тип определенной пользовательской таксономии для регулярного цикла блога WordPress как WebApplication с интенсивным обменом данными? Проблема AJAX – Невозможность SyntaxError при обработке Zip-файла Как отобразить раскрывающийся список «Почтовые имена» Функция jQuery не работает в WordPress, но работает в jsfiddle Конфигурация .htaccess для add_rewrite_rule имеет смысл таможенная таксономия

цикл foreach внутри цикла, создающий дубликаты на выходе

У меня есть цикл foreach внутри цикла, который получает информацию из отдельной таблицы. В таблице есть столбец с идентификатором, который отражает идентификатор типа сообщения, поэтому он всегда должен быть уникальным.

Когда я смотрю на результаты, созданная переменная ($ fullname) отображается несколько раз в строках с сообщениями, которые не имеют того же идентификатора, что и идентификатор события $ fullname.

Вот код со всеми циклами

<?php // the loop if (have_posts()) : $output.='<table class="contentTable" border="0" width="100%">'; $output.='<tr class="one-sixth">'; $output.='<th>Agency</th>'; $output.='<th>Project Description</th>'; $output.='<th>Time Frame</th>'; $output.='<th>Team Leader</th>'; $output.='<th>Volunteer Limit</th>'; $output.='</tr>'; while (have_posts()) : the_post(); //Get post attendee amount $project_id = get_the_ID(); $attendees = $wpdb->get_var("SELECT COUNT(user_id) FROM ".$wpdb->prefix."mro_attendees WHERE event_id = ".$project_id.""); //Get team leader name $leader = $wpdb->get_results("SELECT user_first_name, user_last_name FROM ".$wpdb->prefix."mro_attendees WHERE event_id = ".$project_id." AND user_role = 'team_leader' LIMIT 0,1"); foreach ($leader as $lead) { $leaderfirst = $lead->user_first_name; $leaderlast = $lead->user_last_name; $fullname = $leaderfirst . ' ' . $leaderlast; } //Title and link $temp_title = get_the_title($post->ID); $temp_link = get_permalink($post->ID); // output all findings - CUSTOMIZE TO YOUR LIKING $output.='<tr class="one-sixth">'; $output.='<td><a href="'.$temp_link.'">'.$temp_title.'</a></td>'; $output.='<td>'.get_custom_field('project_description').'</td>'; $output.='<td>'.get_custom_field('project_timeframe').'</td>'; $output.='<td>'.$fullname.'</td>'; $output.='<td>'.$attendees.'/'.get_custom_field('project_limit').'</td>'; $output.='</tr>'; endwhile; $output.='</table><div class="clear-line"></div>'; //pagination links $output.= wp_pagenavi(); $output.='<style>#pagenavi{display:none;}</style>'; $output.='<style>.wp-pagenavi{margin-bottom:20px;}</style>'; else: $output.='nothing found.'; endif; ?> 

Командный лидер $ fullname должен показывать только один раз в соответствии с идентификатором сообщения, что идентификатор события равен циклу, однако результаты вывода в конечном итоге помещают этих людей в другие строки для проектов (post ids), которые не имеют одинакового идентификатор события с человеком. Поэтому они (имена лидеров группы) появляются в дополнительных строках цикла, и я не могу понять, почему это так. Указанный счетчик не вызывает такой же проблемы.

Спасибо и очень признателен всем, кто может мне помочь!

Это проблема php logic / variable. Вы $fullname независимо от того, установлено ли оно внутри этой итерации foreach . Таким образом, для проектов, которые никогда не вводят foreach для установки $fullname , он все еще содержит все, что было установлено последней итерацией. Установите перед пустой строкой пустую строку, чтобы она содержала только имя, если оно входит в foreach .