Skip to main content

How to manipulate a rowset data from sql to php



I have asked a question about how to retrieve data from different tables in sql How to get data from 4 tables in 1 sql query?





When I run the query for my sample data I get 3 rows, anyway being many-to-many relationship between courses and categories I will always get more rows for same course.





My question is how do I handle this data in PHP? I get an array and what I want would be something like:







Array (

[0] => stdClass Object (

[name] => course name

[tutor] => tutor name

[categories] => Array ( categories here )

);







Should I just fetch the data from the categories in a foreach loop after I fetch a course? That would mean bad performance for large amount of data.


Comments

  1. Should I just fetch the data from the categories in a foreach loop after I fetch a course? That would mean bad performance for large amount of data.


    I think that depends on what you will do with the data. If it's just to show to user, i think it's a good idea paginate the results.

    But if you really need to fecth all data in one query and store this in one big array, you can do something like this:

    $last_id = -1;
    for( $x=0; $x < count($myArray); $x++ ) {
    if( $last_id != $myArray[$x]['id'] ) {
    //course changed, do something!
    }
    //do more stuff...
    $last_id = $myArray[$x]['id'];
    }

    ReplyDelete

Post a Comment

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.