2012-01-03 106 views
-1

Possible Duplicate:
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error错误:警告:mysqli_fetch_array()预计参数1被mysqli_result

我知道这已得到解决一百万次,但我似乎无法弄清楚。我一直得到这个错误:警告:mysqli_fetch_array()期望参数1为mysqli_result,布尔在第24行给出。这里是我的代码到目前为止:

<?php 

//Connect to the database 
require('mysql_connect.php') ; 

$query = "SELECT * FROM students WHERE alumni = 'Yes' AND shipped = 'Yes'" ; 
$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc) . '<br />' . $query) ; 
$num = mysqli_num_rows($result) ; 


if ($num >= 1) { 

    while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { 

    $full_name = $row['first_name'] . ' ' . $row['middle_name'] . ' ' . $row['last_name'] ; 

    $query = "INSERT INTO alumni_center (student_id, full_name, phone, address, city, state, postal_code, enrollment_url, active, enrollment_date) VALUES ({$row['student_id']}, '$full_name', '{$row['phone']}', '{$row['address']}', '{$row['city']}', '{$row['state']}', '{$row['postal_code']}', '{$row['registration_url']}', 'Yes', '{$row['alumni_registration_date']}')" ; 
    $result = mysqli_query($dbc, $query) or die(mysqli_error($dbc) . '<br />' . $query) ; 

    } 

} else { 

    echo 'Only 1' ; 
} 

echo 'Done' ; 

?> 

我已经在phpmyadmin运行这两个查询,他们的查询工作正常。而不是循环所有的学生,它只是通过1名学生,并插入到校友中心表中。它应该做的所有的学生,不只是1.任何帮助,非常感谢!

+1

@MarkBaker是正确的。这是一个常见的缺乏注意力的错误。 – 2012-01-03 17:00:49

回答

1

您正在用INSERT语句返回的$ result值覆盖SELECT查询返回的$ result值,因此第二次通过循环mysqli_fetch_array($ result,MYSQLI_BOTH)试图从结果中检索一行你的INSERT,不是你的SELECT

PS的下一个结果的

为什么不能简单地用

INSERT INTO alumni_center 
SELECT ... FROM students ... 
相关问题