0

我正在尝试将员工 ID ( Emp_ID) 输入schedule表 30 次。正在从employee表中提取员工 ID。它将在第一个循环上工作,但在第二个循环上中断。我得到的错误是

“致命错误:在第 110 行的 C:\wamp\www\server\roster\dates.php 中的非对象上调用成员函数 fetch_assoc()”

第 110 行是while循环。我只能假设这种情况正在发生,因为结果集正在被清空,但我不知道如何解决它。

<?php
//Select all of the current Employees by ID number
$sql = ("SELECT Emp_ID FROM employee");

//Run a check on the query to make sure it worked.
//if it failed then print the error.
if(!$result = $mysqli->query($sql))
{
die('There was an error getting the Emp_ID from the employee table [' . $mysqli->error . ']');
}

//Loop through the results...
while($row = $result->fetch_assoc())
    {
    //...and for each employee ID, enter it into the table 30 times.
    for($i = 1; $i <= 30; $i++ )
        {
        $sql = ("INSERT INTO schedule (Emp_ID) VALUES ('" . $row['Emp_ID'] . "')");

            //Run a check on the query to make sure it worked.
            //if it failed then print the error.
            if(!$result = $mysqli->query($sql))
            {
            die('There was an error inserting the Emp_ID into the schedule [' . $mysqli->error . ']');
            }
        }       
    }
?>
4

3 回答 3

3

$result已在while循环中使用,您不能在循环中使用相同的名称,这将覆盖当前值$result

更改$result为不同的变量名$result_insert(我的意思是在插入查询之后)

if(!$result_insert = $mysqli->query($sql))

于 2012-11-20T11:38:53.053 回答
1

您正在覆盖 $result 变量。在 while 循环中使用不同的变量名。

于 2012-11-20T11:39:52.957 回答
0

在 if 条件中,您使用的是相同的 $result 变量,它将其类型更改为非对象。将其名称更改为其他名称。

于 2012-11-20T11:45:43.713 回答