无法用php连接html中的行(逻辑错误显示)
html表格行显示不正确。我想合并表行中的两个while循环,但遗憾的是更新和删除按钮没有正确安排 这是我的代码,我使用了两个查询,这就是为什么它有两个while循环无法用php连接html中的行(逻辑错误显示),php,html,Php,Html,html表格行显示不正确。我想合并表行中的两个while循环,但遗憾的是更新和删除按钮没有正确安排 这是我的代码,我使用了两个查询,这就是为什么它有两个while循环 $sql_sel=mysql_query("SELECT students.stud_id, students.fname, students.lname, students.gender, subjects.sub_code, subjects.subject_name FROM students, enrollmen
$sql_sel=mysql_query("SELECT students.stud_id, students.fname, students.lname, students.gender, subjects.sub_code, subjects.subject_name FROM students, enrollments, subjects WHERE students.stud_id = enrollments.stud_id and subjects.sub_code = enrollments.sub_code");
$sql_sel1=mysql_query("SElECT * FROM enrollments");
while($row=mysql_fetch_array($sql_sel)) //for the first query
{
$i++;
$color=($i%2==0)?"lightblue":"white";
?>
<tr bgcolor="<?php echo $color?>">
<td><?php echo $i;?></td>
<td><?php echo $row['stud_id'];?></td>
<td><?php echo $row['fname']." ".$row['lname'];?></td>
<td><?php echo $row['gender'];?></td>
<td><?php echo $row['sub_code'];?></td>
<td><?php echo $row['subject_name'];?></td>
<?php
while($row=mysql_fetch_array($sql_sel1)) //for the second query
{ <!-------The Update and Delete Button are not displayed properly------>
?>
<td align="center"><a href="?tag=enrollment_entry&opr=upd&rs_id=<?php echo $row['enroll_num'];?>" title="Update"><img src="picture/update.png" /></a></td>
<td align="center"><a href="?tag=view_enrollments&opr=del&rs_id=<?php echo $row['enroll_num'];?>" title="Delete"><img src="picture/delete.png" /></a></td>
<?php
}
?>
</tr>
<?php
}
?>
$sql\u sel=mysql\u query(“选择students.student\u id、students.fname、students.lname、students.gender、subjects.sub\u code、subjects.subject\u name FROM students、registrations、subjects其中student.student\u id=registrations.student\u id和subjects.sub\u code=registrations.sub\u code”);
$sql_sel1=mysql_查询(“从注册中选择*);
而($row=mysql\u fetch\u array($sql\u sel))//用于第一个查询
{
$i++;
$color=($i%2==0)?“浅蓝色”:“白色”;
?>
以下是问题的视觉场景:
所需的输出必须如下所示:
在表格标题中,最后一列使用
colspan='4'
另外,请确保使用空列填充表,其中没有要填充的信息
编辑1:
抱歉,我还没有看到问题的真正原因。下面应该是工作代码:
while($row=mysql_fetch_array($sql_sel))
{
$i++;
$color=($i%2==0)?"lightblue":"white";
?>
<tr bgcolor="<?php echo $color?>">
<td><?php echo $i;?></td>
<td><?php echo $row['stud_id'];?></td>
<td><?php echo $row['fname']." ".$row['lname'];?></td>
<td><?php echo $row['gender'];?></td>
<td><?php echo $row['sub_code'];?></td>
<td><?php echo $row['subject_name'];?></td>
<!-- You were already in a while loop -->
<td align="center"><a href="?tag=enrollment_entry&opr=upd&rs_id=<?php echo $row['enroll_num'];?>" title="Update"><img src="picture/update.png" /></a></td>
<td align="center"><a href="?tag=view_enrollments&opr=del&rs_id=<?php echo $row['enroll_num'];?>" title="Delete"><img src="picture/delete.png" /></a></td>
</tr>
<?php
}
?>
while($row=mysql\u fetch\u数组($sql\u sel))
{
$i++;
$color=($i%2==0)?“浅蓝色”:“白色”;
?>
正如您所看到的,您已经处于一个while循环中,第二个循环是不必要的
编辑2:现在只有一个SQL查询:
<?php
// UPDATED SQL QUERY
$sql_sel = mysql_query("SELECT students.stud_id, students.fname, students.lname, students.gender, subjects.sub_code, subjects.subject_name, enrollments.enroll_num
FROM students, enrollments, subjects
WHERE students.stud_id = enrollments.stud_id and subjects.sub_code = enrollments.sub_code");
while($row = mysql_fetch_array($sql_sel)){
$i++;
$color=($i%2==0)?"lightblue":"white";
?>
<tr bgcolor="<?php echo $color?>">
<td><?php echo $i;?></td>
<td><?php echo $row['stud_id'];?></td>
<td><?php echo $row['fname']." ".$row['lname'];?></td>
<td><?php echo $row['gender'];?></td>
<td><?php echo $row['sub_code'];?></td>
<td><?php echo $row['subject_name'];?></td>
<td align="center"><a href="?tag=enrollment_entry&opr=upd&rs_id=<?php echo $row['enroll_num'];?>" title="Update"><img src="picture/update.png" /></a></td>
<td align="center"><a href="?tag=view_enrollments&opr=del&rs_id=<?php echo $row['enroll_num'];?>" title="Delete"><img src="picture/delete.png" /></a></td>
</tr>
<?php
}
?>
为什么不起作用?你在阅读每个学生的全部信息。然后你在阅读报名表中的全部信息 您开始在第一行中写入学生信息,并在其中告诉服务器开始写入他拥有的关于注册的所有信息(甚至没有链接到该学生的id) 当服务器到达第二行时,可用于注册的所有信息都已耗尽 现在,您的第一个查询中已经链接了它们。如果需要进一步解释,请在评论中询问。试试这个
$sql= "SELECT sts.stud_id, sts.fname, sts.lname, sts.gender, sub.sub_code, sub.subject_name, ets.enroll_num
FROM students sts
JOIN enrollements ets ON(sts.stud_id = ets.stud_id)
JOIN subjects sub ON (sub.sub_code = ets.sub_code)
GROUP BY sts.stud_id, sub.sub_code";
$sql_sel=mysql_query($sql);
while($row=mysql_fetch_array($sql_sel)) //for the first query
{
$i++;
$color=($i%2==0)?"lightblue":"white";
?>
<tr bgcolor="<?php echo $color?>">
<td><?php echo $i;?></td>
<td><?php echo $row['stud_id'];?></td>
<td><?php echo $row['fname']." ".$row['lname'];?></td>
<td><?php echo $row['gender'];?></td>
<td><?php echo $row['sub_code'];?></td>
<td><?php echo $row['subject_name'];?></td>
<td align="center"><a href="?tag=enrollment_entry&opr=upd&rs_id=<?php echo $row['enroll_num'];?>" title="Update"><img src="picture/update.png" /></a></td>
<td align="center"><a href="?tag=view_enrollments&opr=del&rs_id=<?php echo $row['enroll_num'];?>" title="Delete"><img src="picture/delete.png" /></a></td>
</tr>
<?php
}
?>
$sql=“选择sts.stud\u id、sts.fname、sts.lname、sts.gender、sub.sub\u code、sub.subject\u name、ets.enroll\u num
来自学生
加入ets上的注册(sts.stud\u id=ets.stud\u id)
加入主题子项(子项子项代码=ets子项代码)
按sts.stud_id、sub.sub_代码分组”;
$sql\u sel=mysql\u查询($sql);
而($row=mysql\u fetch\u array($sql\u sel))//用于第一个查询
{
$i++;
$color=($i%2==0)?“浅蓝色”:“白色”;
?>
我已经在select中添加了enroll_num列,您不需要两个查询。一个具有正确联接的查询就可以了。是的,即对于update And delete Button,$sql_sel1的行数是多少?$sql_sel1用于更新和删除。在该循环中,它只会删除特定的数据库,因为上面的字段来自另一个表。在那个while循环中,它循环了两次,这就是为什么你在一行中得到了两次delete和update。是的,我明白了,如果分开那一行,update和delete按钮会下降。我只想在每一行中组合两个while循环。我想在第二行中组合update和delete按钮,因为它们没有连接到第二行hile循环用于$sql\u sel1 while($row=mysql\u fetch\u array($sql\u sel1))中的第二个查询。我想将表行中的两个while循环组合在一起。请添加两个查询(使用sql代码),我将为您编写一个简单的带注释的工作代码。现在添加两个查询