这是我在php中查询的代码:
$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while($query3 = mysql_fetch_assoc($query3)){
$flag = true;
foreach($listOfUserAreas as $obj){
if($obj->areaId == $query3['id']){
$flag = false;
break;
}
}
if($flag){
$areaObj = new AreaInfo();
$areaObj->areaId = $query3['id'];
$areaObj->areaName = $query3['areaOfWork'];
$areaObj->areaTableName = $query3['tableName'];
array_push($listOfUnusedAreas, $areaObj);
}
}
我收到此错误:
警告:mysql_fetch_assoc()期望参数1是资源,第30行的C:\ xampp \ htdocs \ job-skills \ php \ functions \ user_unused_area_list.php中给出的数组 []
看不出有什么不对劲。 感谢
答案 0 :(得分:3)
将变量$query3
重命名为$query
或与while loop
中使用的变量不同的内容。
您在线执行的操作:while($query3 = mysql_fetch_assoc($query3))
是您在第一次迭代时将mysql_fetch_assoc
的结果分配给$query3
(此时它是资源),并且在您传递$query3
时mysql_fetch_assoc
1}}(已经是一个数组)到mysql_*
。
答案 1 :(得分:3)
在这一行:
while($query3 = mysql_fetch_assoc($query3))
您正在$query3
重新分配mysql_fetch_assoc
应该是这样的:
while($queryRes = mysql_fetch_assoc($query3))
答案 2 :(得分:3)
不要使用相同的变量..尝试这样
$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while($result = mysql_fetch_assoc($query3)){
.....//Your code
}
答案 3 :(得分:3)
你的问题在这里:
$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while ($query3 = mysql_fetch_assoc($query3)) {
应该是这样的:
$q = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while ($query3 = mysql_fetch_assoc($q)) {
答案 4 :(得分:2)
你的第一个循环可以正常工作,但你的第二个循环会失败:
while($query3 = mysql_fetch_assoc($query3)){
执行第一个循环后,您将结果数组分配给资源,有效地覆盖资源。
替换你的行:
while($listOfUserAreas = mysql_fetch_assoc($query3)){
答案 5 :(得分:2)
这是错误的:
while($query3 = mysql_fetch_assoc($query3)){
您正在使用相同的变量来读取,要分配给。
您可以通过替换上述行来解决此问题:
$result = &$query3;
while($query3 = mysql_fetch_assoc($result)){
只需更改这些行,其余代码就可以使用。
答案 6 :(得分:2)
您正在尝试将关联数组分配给资源
while($query3 = mysql_fetch_assoc($query3))
这是错误的...尝试使用不同的变量 while($ Result = mysql_fetch_assoc($ query3))
答案 7 :(得分:1)
while($query4 = mysql_fetch_assoc($query3)){
更改获取变量的名称