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に問題があるか、サーバーがSQLを実行できないことを意味します。それをエコーアウトして、クエリが結果を提供できることを確認することをお勧めします。

この場合、mysql_関数とmysqli_関数を混在させているようですか?関連付けられた配列を返すことができるようにmysqli_接続を作成していますか?

編集:

このコメントに基づいて、「まあ、私はこのサイトを完成させるために急いでいます..だから私はmysqlに固執します」、あなたの関数に接続を追加してみてください?例1を見て、手順がカバーされていることを確認してください。

于 2012-08-09T07:29:35.390 に答える