0

我有这个功能:

    public function get_all_sites($niche){
    $query="SELECT * 
           FROM sites AS site
           INNER JOIN niche AS n ON n.niche_id=site.niche_id
           INNER JOIN review AS r ON r.site_id=site.site_id
           WHERE n.niche_id=".$niche;
    $results=mysql_query($query) or die(mysql_error());

  while($rows[] = mysql_fetch_assoc($results));

    return $rows;
}

我想要做的是一次性将所有行转换为关联数组并返回它。由于返回的值很多,我不想使用任何推送函数或编写类似 $new_array['id']=$row['id']; 这样的代码。更短的代码更好。

好的,连接错误消失了。如何在不从循环内部获取结果的情况下将所有行作为数组从 mysql_fetch_assoc 中输出

4

1 回答 1

0

错误:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, 
resource given in C:\Program Files (x86)\Zend\Apache2\htdocs\bestMatch
\sandbox\models\SitesDB.php on line 19

表示您的 SQL 有问题或服务器无法执行它。我建议您将其回显并确保查询可以提供结果。

在这种情况下,您似乎正在混合使用 mysql_ 和 mysqli_ 函数?您是否在进行 mysqli_ 连接以便能够返回关联的数组?

编辑:

基于此评论“嗯,我急于完成这个网站..所以我会坚持使用 mysql”,尝试添加到您的函数的连接?查看示例 1并确保您已涵盖这些步骤。

于 2012-08-09T07:29:35.390 回答