需要帮助的在PHP
问题描述:
我有2个表遍历一个MySQL结果集:需要帮助的在PHP
Institute:
-----------
id name city
----- ------- -------
1 Name 1 London
2 Name 2 Leeds
3 Name 3 Edinburgh
Course:
--------
id i_id name stream
----- ----- -------------------- -------
1 1 Computer Engineering Engineering
2 1 Chemical Engineering Engineering
3 2 Electronics Engineering Engineering
4 3 Mechanical Engineering Engineering
我需要在我的ResultSet以下信息:
- 研究院提供工程课程(名称1,名称2 ,名称3)。
- 该研究所提供的所有课程。
现在,这是我的查询实现这个结果集:
SELECT institute.id, institute.name AS i_name, institute.city, course.name AS c_name
FROM institute, course
WHERE institute.id = course.i_id
AND course.stream = 'Engineering'
ORDER BY institute.id
该查询返回了我4个记录:
id i_name city c_name
--- ------- --------- ----------------
1 Name 1 London Computer Engineering
1 Name 1 London Chemical Engineering
2 Name 2 Leeds Electronics Engineering
3 Name 3 Edinburgh Mechanical Engineering
我怎么能遍历这个结果集,使我得到在网页上方显示数据:
Found 3 Institutes
----------------------
1) Name 1, London
Courses Offered:-
=> Computer Engineering
=> Chemical Engineering
2) Name 2, Leeds
Courses Offered:-
=> Electronics Engineering
3) Name 3, Edinburgh
Courses Offered:-
=> Mechanical Engineering
[ADDED]
我有分页设置我的网页上。现在让我们说我想每页显示2条记录我将用LIMIT 0,2
运行上述查询。现在显然前两个记录在我的查询中给了我同样的研究所,所以在这种情况下,我也需要第三个研究所。
我能做出这样一个动态查询?
答
像这样的东西应该工作:
$currentInstitute = null;
$i = 1;
while($row = mysql_fetch_object($query)) {
if($row->i_name != $currentInstitute)
echo $i++.") $row->i_name, $row->city\n Courses offered:-\n";
$currentInstitute = $row->i_name;
echo " => $row->c_name\n";
}
+0
感谢您的回复。 – 2013-04-21 14:39:20
也许你可以这个问题限制到第一点,使另一个问题后来这里覆盖加点?这会更容易,因为你的第一个问题已经给出了答案。 – didierc 2013-04-21 14:10:47
事实上,你甚至不需要等待这个问题才能问一个答案,然后再问另一个问题...... – didierc 2013-04-21 14:13:00