检查FK订单编号是否正确



我有一些缺勤,每次缺勤都有一个发给员工的FK,我想将其显示在生成的HTML表中。但是,如果我删除了一名员工,订单将从0,1,2更改为1,2(例如,如果第二名员工被删除)。

这把我的代码搞砸了,因为我需要FK来检查我必须在哪里插入leaf(其中<tr>)。在这里我数一下员工:

$result = mysql_query("select count(1) FROM employee");
$row    = mysql_fetch_array($result);
$count_user = $row[0];

在代码的后面,我在循环中进行了一个查询。循环运行的次数与用户数量一样多。问题是:如果一名员工被删除,它将无法访问另一名员工(如果有2个用户,$i为0,然后为1,但如果删除了一个用户,FK为3,所以它需要再前进一步)。至

 $result = mysql_query("select start, end, type_FK, employee_FK FROM absences where employee_FK = $i");
                            while ($row = mysql_fetch_assoc($result)) {
                            $array_absences[] = $row;
                            }

有没有人有一个不是基于FK订单的想法?此外,这个主题需要一个更好的标题,所以请随意编辑。

<html>
    <head>
        <title>Absence System</title>
    </head>
    <body>
        <?php
            $con = mysql_connect("localhost", "root", "");
            if (!$con) {
                die('Could not connect: ' . mysql_error());
            }
            mysql_select_db("absence_system", $con);

            $result = mysql_query("select count(1) FROM employee");
            $row    = mysql_fetch_array($result);
            $count_user = $row[0];


            $result = mysql_query("select count(1) FROM absences");
            $row    = mysql_fetch_array($result);
            $count_absences = $row[0];

            $result = mysql_query("select name, surename, employee_ID FROM employee");
                while ($row = mysql_fetch_assoc($result)) {
                    $array_user[] = $row;
            }

            for($i = 0; $i < $count_user; $i++){
                echo '<table = border = 1px>';
                    echo '</tr>';
                        $result = mysql_query("select start, end, type_FK, employee_FK FROM absences where employee_FK = $i");
                        while ($row = mysql_fetch_assoc($result)) {
                        $array_absences[] = $row;
                        }
                        $count = count($array_absences);
                        echo $count;
                        print_r($array_absences);
                        for($j = 0; $j < 32; $j++){
                        $true = 0;
                        if($j == 0){
                        echo '<td>';
                        echo $array_user[$i]['name'], " ", $array_user[$i]['surename'] ;
                        echo '</td>';
                        }
                        for($k = 0; $k < $count; $k++)
                        {
                        $array_absences[$k]['start'] = substr($array_absences[$k]['start'], -2);
                        $array_absences[$k]['end']   = substr($array_absences[$k]['end'], -2);
                        $array_absences[$k]['start'] = ereg_replace("^0", "", $array_absences[$k]['start']);
                        $array_absences[$k]['end']   = ereg_replace("^0", "", $array_absences[$k]['end']);
                        if($j == $array_absences[$k]['start'] && $array_absences[$k]['employee_FK'] == $i){
                        $true = 1;
                        echo '<td>';
                        echo $array_absences[$k]['type_FK'];
                        echo '</td>';
                        }
                        }

                        if($j != 0 && $true == 0){
                        echo '<td>';
                        echo "$j";
                        echo '</td>';
                        }
                        }
                    echo '</tr>';
                echo '</table>';
            }
        ?>
    </body>
</html>

如果employee_ID对应于employee_FK,那么您不应该迭代$count_user,而应该迭代$array_user,那么您的选择将如下所示:

$result = mysql_query("select start, end, type_FK, employee_FK FROM absences where employee_FK = {$array_user[$i]['employee_ID']}");

$i仍然表示序列号,因为

$count_user == count($array_user)

相关内容

最新更新