如何创建一个php循环,循环直到索引改变?例如,如果索引是student,数据列是该学生注册的所有班级,那么如何在当前学生旁边显示每个班级,然后转到下一个学生并显示该学生的所有班级,依此类推?我完全卡住了,我只需要一个想法来帮助开始。我相信我需要一个foreach或while循环,也就是说,虽然student\u 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
我真的需要帮助如何开始在这里,任何帮助在哪里开始将是非常有帮助的。
edit:好的,对于第一个表(一对多),结构是
ID(PK)
Name(index)
Code
Image
第二种(多对多)结构是:
TABLEID(PK)
Student_ID(index)
Student_Name(index)
Course
我在phpmyadmin设计器中建立了id和student\u id以及name和student\u 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\...
2条答案
按热度按时间vmdwslir1#
我建议你改进你的查询,像这样。
你应该得到如下数组:
$结果
[id]=>(1)
[代码]=>(xy35xs)
[姓名]=>(无名氏)
[课程]=>(101、102、103)
所以现在你可以像以前一样,每小时或一段时间循环一次。
对我的建议进行了一点编辑,以包含mysqli部分。
4c8rllxm2#
我不完全明白你的问题,但如果这是可行的,首先从表中获得学生名单
现在每个学生都需要这门课,对吗?所以
希望这能奏效。