我的$ result和$ result2是正确的,但是为什么会出现这个警告“mysql_fetch_array()期望参数1是资源,boolean在...中给出” 帮助我解决这个问题。 这是我的编码:
//捕获输入
<?php
//capture input
$destination_name = $_POST['destination_name'];
$num_of_passenger = $_POST['num_of_passenger'];
$reserve_to = $_POST['reserve_to'];
$venue = $_POST['venue'];
$day = $_POST['day'];
$DepDate = $_POST['DepartureDate'];
$DepartureTime = $_POST['DepartureTime'];
$ReDate = $_POST['ReturnDate'];
$ReturnTime = $_POST['ReturnTime'];
第3步:SQL语句(INSERT UPDATE DELETE VIEW)
$result = mysql_query("INSERT INTO location (destination_code, destination_name) VALUES ('','$destination_name')");
$new_row_id1 = mysql_insert_id();
while($row=mysql_fetch_array($result))
{
$destination_name = $row['destination_name'];
}
$result2 = mysql_query("INSERT INTO reservation (reservation_id, num_of_passenger, reserve_to, venue, day, DepartureDate, DepartureTime, ReturnDate, ReturnTime, destination_code, user_id) VALUES('','$num_of_passenger','$reserve_to','$venue','$day','$DepDate','$DepartureTime','$ReDate','$ReturnTime','$new_row_id1','$_SESSION[user_id]')");
while($row2=mysql_fetch_array($result2))
{
$num_of_passenger = $row2['num_of_passenger'];
$reserve_to = $row2['reserve_to'];
$venue = $row2['venue'];
$day = $row2['day'];
$DepDate = $row2['DepartureDate'];
$DepartureTime = $row2['DepartureTime'];
$ReDate = $row2['ReturnDate'];
$ReturnTime = $row2['ReturnTime'];
}
if (!$result2)
{
die ("Cannot Execute Query".mysql_error());
}
else
{
print "Reservation Complete";
}
?>
答案 0 :(得分:2)
参见文档:http://php.net/manual/en/function.mysql-query.php
对于其他类型的SQL语句, INSERT ,更新,删除, DROP 等, mysql_query ()成功时返回TRUE,错误时返回FALSE。
所以你的代码while($row2 = mysql_fetch_array($result2))
,$result2
是一个表示true / false的布尔值。您需要使用不同的查询(SELECT)来获取迭代结果。