0

次のようなテーブルcategoriesがありますid, name, subcategory_id, parent_id。次のような別のテーブルclassifiedsclassified_id, title, description, category_id

私は各カテゴリーの求人広告の数を引き出しようとしています。したがって、このようになります。

  • 付属品(10)
  • 車(15)
  • デート(12)

私はそれを次のように試してみました:

enter $catquery  = mysql_query("SELECT * FROM categories WHERE sub_id = '0' ORDER BY name ASC"); here

enter  $catrows = mysql_num_rows($catquery);  here
enter $catrows = mysql_num_rows($catquery); here
enter $query = "SELECT category_id, COUNT(title) AS `total` FROM classifieds WHERE classified_id = 'category_id' "; here
enter $result = mysql_query($query); here
enter while($row = mysql_fetch_assoc($result)){ $num_items_in_category[$row['category_id']] = $row['total'];  here

enter } echo "<li><a href='category.php?cat=".$row['id']."'>".$row['name']. $row['total']. "</a></li>"; here

ありがとうフェラス

4

2 に答える 2

0

COUNTは集計関数であるため、すべてのカウントを一度に取得できます。

あなたが探しているのは

$query = "SELECT category-id, COUNT(title) AS `total` FROM classifieds WHERE classified-id = 'category-cat' GROUP BY category-id";
$result = mysql_query($query);

while($row = mysql_fetch_assoc($result)){
  $num_items_in_category[$row['category-id']] = $row['total']; 
}

これにより、各カテゴリIDのレコード数を含む連想配列が得られます。

于 2012-05-10T01:44:45.450 に答える
0

2つのテーブルを結合することで、探していることを達成できるはずです。

SELECT a.name, count(*) as cnt
FROM categories a
    join classifieds b
    on a.id = b.category_id
group by a.name
于 2012-05-10T01:46:02.653 に答える