php - PHP循环数组直到索引改变
问题描述
如何创建一个循环直到索引更改的 php 循环?例如,如果索引是学生,数据列是学生注册的所有班级,如何在当前学生旁边显示每个班级,然后移动到下一个学生并显示该学生的所有班级等等?我完全被卡住了,我只需要一个想法来帮助开始。我相信我需要一个 foreach 或 while 循环,即当 student_id 没有改变时,显示类。或者类似的东西,我已经被困在这里好几天了。我还有一个元素以一对多的方式显示每个学生的数据,但是,由于这是一个多对多表,我为每个学生的班级创建了一个完整的单独表。
$get_student = "select * from students";
$run_student = mysqli_query($Conn, $get_student);
while($row_product=mysqli_fetch_array($run_student)){
$student_id = $row_product['ID'];
$student_name = $row_product['Name'];
$student_code = $row_product['Code'];
$student_image = $row_product['Image'];
echo "
<div class='' id='' >$student_id $student_name $student_code</div>
<br><br><br><br>
";}
基本上,我想从第二个表中调用,即包含课程的表,并将它们与其他信息一起列在 div 中。该表如下所示
ClassTable
ID-------Class
1--------101
1--------131
2--------555
3--------225
3--------146
3--------269
我真的需要关于如何从这里开始的帮助,任何关于从哪里开始的帮助都会非常有帮助。
编辑: 好的,所以对于第一个表(一对多),结构是
ID(PK)
Name(index)
Code
Image
第二个(多对多)结构是:
TABLEID(PK)
Student_ID(index)
Student_Name(index)
Course
我在 phpmyadmin 设计器中建立了 ID 和 Student_ID 以及 Name 和 Student_Name 之间的关系。
我希望这能澄清结构。
编辑 2
按照建议,我对上面的 php 代码进行了编辑:
/*$get_student = "select * from inventory";*/
$get_student = "SELECT s.ID, S.Code, s.Name,
(
SELECT
GROUP_CONCAT(c.Course SEPARATOR ', ')
from
mydatabase.coursetable c
where
c.Student_ID = s.ID
) as courses
FROM mydatabase.studenttable s" ;
但是,我收到以下错误
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\...
解决方案
我不完全明白你的问题,但如果这可行,首先从表中获取学生列表
$sql = "select id,Name from students";
$students = mysqli_query($Conn, $sql);
现在对于每个学生,您都需要这门课程吗?所以
foreach($students as $student){
echo $student[Name];
$sql = "select course from courses where Student_id = ".$student[id];
$studentCourse = mysqli_query($Conn, $sql);
foreach($studentCourse as $std)
{
echo $std[course];
}
}
希望这有效。
推荐阅读
- c++ - 如何运行外部程序,将内存地址传递给读/写?
- angular - Angular 6 project not loading in IE11
- mysql - SELECT GROUP_BY and GROUP_CONCAT same values in a table only if one of the values has a NULL field
- javascript - Make button respond to the Enter Key
- r - GGally::ggpairs 在处理 NA 时对不同的变量表现不同
- xls - 无法从 Excel 文件输入中读取数据
- php - Passing the previous page title to a custom checkout field in Woocommerce
- ssis - Can SSIS check record that is imported during the current run
- google-apps-script - Google 表格 - 用于计算下拉选择次数的脚本
- r - inaccurate percentages in expss table