我问过一个关于如何从sql How to get data from 4 tables in 1 sql query?
中的不同表中检索数据的问题当我运行查询我的样本数据时,我得到3行,无论如何是课程和类别之间的多对多关系,我将总是为同一课程获得更多行。
我的问题是如何在PHP中处理这些数据?我得到一个数组,我想要的是:
Array (
[0] => stdClass Object (
[name] => course name
[tutor] => tutor name
[categories] => Array ( categories here )
);
我是否应该在获取课程后从foreach循环中的类别中获取数据?这将意味着大量数据的性能不佳。
答案 0 :(得分:2)
我是否应该在获取课程后从foreach循环中的类别中获取数据?这将意味着大量数据的性能不佳。
我认为这取决于您对数据的处理方式。如果只是向用户展示,我认为对结果进行分页是一个好主意。
但是如果你真的需要在一个查询中记录所有数据并将其存储在一个大数组中,你可以这样做:
$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'];
}