Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy does this foreach loop end early?
    primarykey
    data
    text
    <p>I'm wondering why the foreach loop in this function ends after outputting the data after it goes through the loop just once. I've run the query in MySQL and it returns the 8 records that I'm looking for. When I <code>print_r</code> the array that it all gets packed into before and after the foreach it shows 8 record sets in the array. </p> <p>However, when I run the function on the page, it only outputs the first record set and then stops. Any ideas why that is?</p> <p>Also, there's a really long, stupid reason for cramming this all into a single function. Just know, it was my only option. </p> <pre><code>function query_hp_hero_events() { global $wpdb; $sql = "SELECT SQL_CALC_FOUND_ROWS *, mt2.meta_value AS start_time, mt3.meta_value AS end_time, mt4.meta_value AS start_date, mt5.meta_value AS event_id, mt6.meta_value AS event_meta, mt7.meta_value AS event_thumb FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id) INNER JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id AND mt2.meta_key = 'event_start_time') INNER JOIN wp_postmeta AS mt3 ON (wp_posts.ID = mt3.post_id AND mt3.meta_key = 'event_end_time') INNER JOIN wp_postmeta AS mt4 ON (wp_posts.ID = mt4.post_id AND mt4.meta_key = 'event_start_date') INNER JOIN wp_postmeta AS mt5 ON (wp_posts.ID = mt5.post_id AND mt5.meta_key = 'event_id') INNER JOIN wp_postmeta AS mt6 ON (wp_posts.ID = mt6.post_id AND mt6.meta_key = 'event_meta') INNER JOIN wp_postmeta AS mt7 ON (wp_posts.ID = mt7.post_id AND mt7.meta_key = 'event_thumbnail_url') WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (7) ) AND wp_posts.post_type = 'espresso_event' AND (wp_posts.post_status = 'publish') AND (wp_postmeta.meta_key = 'event_start_date' AND (mt1.meta_key = 'event_start_date' AND CAST(mt1.meta_value AS DATE) &gt;= '" . date('Y-m-d') . "') ) GROUP BY wp_posts.ID ORDER BY CAST(wp_postmeta.meta_value AS DATE) ASC, CAST(mt2.meta_value AS TIME) ASC LIMIT 0, 8"; echo $sql; $events_query = $wpdb-&gt;get_results( $wpdb-&gt;prepare( $sql )); foreach ($events_query as $event_listing) { $eventDate = strtotime($event_listing-&gt;start_date); $eventEndTime = strtotime($event_listing-&gt;end_time); $eventStartTime = strtotime($event_listing-&gt;start_time); $eventId = $event_listing-&gt;event_id; $eventMeta = $event_listing-&gt;event_meta; $eventThumb = $event_listing-&gt;event_thumb; $newEventMeta = unserialize($eventMeta); $newEventMeta2 = unserialize($newEventMeta); $homepageOverride = $newEventMeta2["homepage_override"]; $ticketLink = $newEventMeta2["ticket_link"]; $suiteRentals = $newEventMeta2["suite_rentals_link"]; $vipTickets = $newEventMeta2["vip_ticket_link"]; $groupTicketSales = $newEventMeta2["group_sales_link"]; $parkingLink = $newEventMeta2["parking"]; if ($eventDate &gt;= strtotime(date('Y-m-d')) &amp;&amp; $eventEndTime &gt;= strtotime(date('G:i'))) { $hero = '&lt;div id="event' . $eventId . '"&gt;'; $hero .= '&lt;div class="details"&gt;'; if ( in_category( 'news' ) ) { $hero .= '&lt;h1&gt;&lt;a href="' . get_permalink() . '"&gt;' . $event_listing-&gt;post_title . '&lt;/a&gt;&lt;/h1&gt;'; } else { $hero .= '&lt;h1&gt;&lt;a href="/event-registration/?ee=' . $eventId . '"&gt;' . $event_listing-&gt;post_title . '&lt;/a&gt;&lt;/h1&gt;'; } if ( isset ( $homepageOverride ) &amp;&amp; $homepageOverride != "" ) { $hero .= '&lt;h2&gt;' . $homepageOverride . '&lt;/h2&gt;'; } else { $hero .= homepage_event_date_range($eventId, $eventStartTime); } $hero .= '&lt;ul&gt;'; if ( in_category( 'news' ) ) { $hero .= '&lt;li&gt;&lt;a href="' . get_permalink() . '"&gt;More Info&lt;/a&gt;&lt;/li&gt;'; } else { $hero .= '&lt;li&gt;&lt;a href="/event-registration/?ee=' . $eventId . '"&gt;More Info&lt;/a&gt;&lt;/li&gt;'; } if ( isset ( $ticketLink ) &amp;&amp; $ticketLink != "" ) { $hero .= '&lt;li&gt;&lt;a href="' . $ticketLink . '" rel="external"&gt;Buy Tickets&lt;/a&gt;&lt;/li&gt;'; } if ( isset ( $suiteRentals) &amp;&amp; $suiteRentals != "" ) { $hero .= '&lt;li&gt;&lt;a href="' . $suiteRentals . '"&gt;Suite Rentals&lt;/a&gt;&lt;/li&gt;'; } if ( isset ( $vipTickets) &amp;&amp; $vipTickets != "" ) { $hero .= '&lt;li&gt;&lt;a href="' . $vipTickets . '"&gt;VIP Seats&lt;/a&gt;&lt;/li&gt;'; } if ( isset ( $groupTicketSales) &amp;&amp; $groupTicketSales != "" ) { $hero .= '&lt;li&gt;&lt;a href="' . $groupTicketSales . '"&gt;Group Tickets&lt;/a&gt;&lt;/li&gt;'; } if ( isset ( $parkingLink) &amp;&amp; $parkingLink != "" ) { $hero .= '&lt;li&gt;&lt;a href="' . $parkingLink . '" rel="external"&gt;Parking&lt;/a&gt;&lt;/li&gt;'; } $hero .= '&lt;/ul&gt;'; $hero .= '&lt;/div&gt;'; if ( isset( $regexMatch[0] ) &amp;&amp; $regexMatch[0] != "" &amp;&amp; isset( $youtubeIdMatch[0] ) &amp;&amp; $youtubeIdMatch[0] != "") { $hero .= '&lt;div class="yt-video-player" id="videoplayerdiv1" src="http://www.youtube.com/v/' . $youtubeIdMatch[0] . '?enablejsapi=1&amp;playerapiid=videoplayergen1&amp;version=3"&gt;&lt;/div&gt;'; } else { $hero .= '&lt;img src="' . $eventThumb . '" width="595" height="350" alt="" class="heroImg" /&gt;'; } $hero .= '&lt;/div&gt;'; } return $hero; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload