PHP: Nested Foreach loop problems

guangshi

New Member
I am attempting to display a list of users based on a month value. I want to display January then all the users associated with it etc...What i have now is working correctly for the first months then does nothing after. I have comments in the code and a live version of this code is running at: http://blog.funeraldirectorslife.com/participants/\[code\]<?php/*Template Name: Participants*/?><?php function display_user($author, $month){ $ID = $author->ID; $full_name = get_the_author_meta('display_name', $ID); $usr_name = get_the_author_meta('user_nicename', $ID); $sab_descriptiom = get_cimyFieldValue("$ID", 'Sabbatical_desc'); $sab_start = get_cimyFieldValue("$ID", 'Sabbatical_Start'); $sab_end = get_cimyFieldValue("$ID", 'Sabbatical_End'); $sab_month = get_cimyFieldValue("$ID", 'Sabbatical_Month'); $author_posts = $author->num_posts; //$months = array(January, February, March, April, May, June, July, August, September, October, November, December); //echo $sab_month; if ($sab_month == $month){ echo "<li>"; echo "<h4 class=\"nomar\"><a href=http://stackoverflow.com/questions/2050154//"http://blog.funeraldirectorslife.com/author/" . $usr_name ."\">" .$full_name ."(" . $author_posts . ")" . "</a>" . "</h4>"; echo $sab_start . " - " . $sab_end . "<br />"; echo $sab_descriptiom . "<br />" . $sab_month . "</br>" . "</li>" . "\n"; } else { return; } }?><?php get_header(); ?><div id="bd" class="grid_12 alpha omega clearfix"> <?php get_sidebar(); ?> <div id="main" class="grid_9 omega"> <?php include(TEMPLATEPATH . '/banner.php'); ?> <div class="unit"> <!-- <div class="head"> <div class="title"><h3><span>Blog Entries</span></h3></div> </div> //--> <div class="body clearfix"> <ul class="styled_list"> <li class ="alpha"><h3 class="nomar"><a href="http://stackoverflow.com/questions/2050154/<?php the_permalink(); ?>"><span><?php the_title(); ?></span></a></h3></li> <?php //grab authors ids, post count, and extended info from database //fill $authors array with data $sql = "SELECT * FROM `wp_users` WHERE 1 ORDER BY ID"; $results = $wpdb->get_results($sql); $authors = $results; $author_count = array(); $rows = $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author"); foreach ($rows as $row) { $author_count[$row->post_author] = $row->count; } //combine queries foreach( $authors as $author ) { $author->num_posts = (isset($author_count[$author->ID])) ? $author_count[$author->ID] : 0; } //month array for comparing with sabbatical month $months = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October','November', 'December'); //tried old method for iterating arrays --> same result /*reset($months); while (list($key, $month) = each($months)){ echo "<h2 class=\"nomar\">" . $month . "</h2>" . "\n"; foreach($authors as $author) { display_user($author, $month); //echo $author->ID; } }*/ foreach($months as $month ) { echo "<h2 class=\"nomar\">" . $month . "</h2>" . "\n"; foreach($authors as $author) { display_user($author, $month); //echo $author->ID; } //lists authors by ID - just making sure array is intact after each author loop /*foreach($authors as $author) { $ID = $author->ID; $foo = get_cimyFieldValue("$ID", 'Sabbatical_Month'); echo $ID . $foo . "<br /> . "\n""; }*/ } ?> </ul> </div> </div> </div></div><?php get_footer(); ?>\[/code\]
 
Back
Top