使用Mysql在php循环中获取数组时获取错误

时间:2014-05-06 08:51:31

标签: php mysql

我有以下代码有两个查询。第一个获取将在下一个查询中使用的ID。我在第二个查询时出现此错误:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\b\pprincipal.php on line 132

这是第一个查询(对于该表中存在数据的用户的ID)

$query2 = mysql_query("SELECT DISTINCT competencias, id_user FROM ce");
$ut = array();
while ($result = mysql_fetch_array($query2)) $ut[] = $result;
   foreach ($ut as $u){
 $id_user=$u[1];
 echo "<li class='has-sub'><a>" .$u[0]. "</a>";
}

以下是给出错误的查询:

$query3 = mysql_query("SELECT id, nome FROM utilizadores WHERE id=$id_user");
$utt = array();
while ($result2 = mysql_fetch_array($query3, $con)) $utt[] = $result2;
foreach ($utt as $u2){
   echo "<ul><li><a>". $u2[0]. "</a></li>";
}

这第二个查询是正确的,因为我已经回显了数组并且没关系。但它给了我WHILE循环的错误。

3 个答案:

答案 0 :(得分:5)

我认为错误可能在这里:

$query3 = mysql_query("SELECT id, nome FROM utilizadores WHERE id=$id_user");

如果&#34; nome&#34;确实&#34; nome&#34;而不是&#34;名称&#34;然后尝试这个查询:

$query3 = mysql_query("SELECT `id`, `nome` FROM utilizadores WHERE id='$id_user'");

请注意,`与&#39;不同。

答案 1 :(得分:1)

你可以试试这个

$query3 = mysql_query("SELECT id, nome FROM utilizadores WHERE id=$id_user");
$utt = array();
while ($result2 = mysql_fetch_array($query3)) $utt[] = $result2;
foreach ($utt as $u2){
   echo "<ul><li><a>". $u2[0]. "</a></li>";
}

你不能在mysql_fetch_array上使用连接句柄:)

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )
你应该使用mysqli或pdo进行数据库处理:)

答案 2 :(得分:0)

$query3 = mysql_query("SELECT id, nome FROM utilizadores WHERE id=$id_user");
$utt = array();
while ($result2 = mysql_fetch_array($query3, $con)) $utt[] = $result2;
foreach ($utt as $u2){
   echo "<ul><li><a>". $u2[0]. "</a></li>";
}

在你的第二个循环中删除$ con