Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法用php连接html中的行(逻辑错误显示)_Php_Html - Fatal编程技术网

无法用php连接html中的行(逻辑错误显示)

无法用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

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, 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代码),我将为您编写一个简单的带注释的工作代码。现在添加两个查询