Jump to content

Codeigniter group by array


epseix1

Recommended Posts

I would have simply edited my previous topic had it not been locked, however I am asking the same TYPE of question - looking at it from a different angle (hope that's OK).

 

I am trying to generate a "past events" page for my CI website, using a MySQL database table called "events". There are 100+ rows of data, some duplicate, that range across 5 major countries - England, Ireland, Norther Ireland, Scotland and Wales - many different major cities - again, including duplicate entries - and venues.

 

I have struggled for a couple of weeks now with how to query and return the data in the following format:

 

<h1>** grouped country **</h1>
<h2> ** grouped city **</h2>
<p>** grouped venue **</p>
Such as:

 

<h1>England</h1>
<h2>London</h2>
<p>Tower of London</p>
<h2>Manchester</h2>
<p>Canal Street</p>
<p>Old Trafford</p>
<h1>Ireland</h1>
<h2>Dublin</h2>
<p>St. James' Gate</p>
<h1>Scotland</h1>
<h2>Glasgow</h2>
<p>Buchanan Street</p>
<p>Tron Theatre</p>
I am DELIBERATELY not including any of my code for model, view and controller, as what I have thus far seems to confuse people as to what I'm trying to achieve when they see it. And I'm open to the fact I may be attacking this from the wrong angle altogether... I just need to result the above!

 

It feels as if this SHOULD be a fairly simple thing to achieve, but I NEED HELP!

Link to comment
Share on other sites


$events = array();

 

foreach($db->result() as $result)

{

     $events[$result->country][$result->city][$result->venue];

}

 

A bit confused but this should create a multidimensional array with a city for each country and an event for each city. 

Link to comment
Share on other sites

Unless you are specifically querying for a country, city, or venue, then I assume you are pulling in the entire set from the DB. Because of that, you can specify you want the results as an array:

 

$arr = $query->result_array();

 

Now that all of the rows are in an array, you would simply use php's sorting functions to order the array. I'd recommend looking at uasort. Also, with this type of nested parent => child relationship, you can take a look at what I did with Community Auth, and the example that shows a category menu. Community Auth is at http://community-auth.com, and is a CodeIgniter project. Look at how the database is organized, and how the results are displayed. I think you will find that it will work well for your project.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.