2012-02-10 30 views
2

问一个关于如何从不同的表中的数据在SQL How to get data from 4 tables in 1 sql query?我曾经如何从SQL操纵行集数据到PHP

当我运行查询我的样本数据,我得到3行,反正是很多问题课程和类别之间的一对多关系我会在同一课程中获得更多的行。

我的问题是我如何在PHP中处理这些数据?我得到一个数组,我想会是这样的:

Array ( 
    [0] => stdClass Object ( 
     [name] => course name 
     [tutor] => tutor name 
     [categories] => Array (categories here) 
); 

我是不是应该获取在foreach循环的类别中的数据后,我取的课程?这将意味着大量数据的糟糕表现。

回答

2

我是否应该在获取课程后从foreach循环中的类别中获取数据?这将意味着大量数据的糟糕表现。

我认为这取决于您将如何处理数据。如果只是向用户展示,我认为对结果进行分页是一个好主意。

但如果你真的需要fecth在一个查询中的所有数据,并存储在这一个大阵,你可以做这样的事情:

$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']; 
}