2

これらの 2 つのテーブルには、いくつかのデータ サンプルが含まれています。各カテゴリの広告数を引き出したいと思います。私はそれを試してみましたが、それぞれで (2) を得ましたが、これは正しくありません。うまくいけば、誰かがこれで私を助けてくれるでしょう。

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `name` text COLLATE utf8_unicode_ci NOT NULL,
  `subcategory_id` int(2) NOT NULL DEFAULT '0',
  `parent_id` int(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=27 ;

--
-- Dumping data for table `categories`
--

INSERT INTO `categories` (`id`, `name`, `subcategory_id`, `parent_id`) VALUES
(1, 'Announcements', 0, 0),
(2, 'Employment', 0, 0),
(3, 'Items For Sale', 0, 0),
(4, 'Services', 0, 0),
(5, 'Garage Sales', 0, 0),
(6, 'Automobiles', 0, 0),
(7, 'Announcement1', 1, 1),
(8, 'Announcement2', 1, 1),

--
-- Table structure for table `classifieds`
--

CREATE TABLE IF NOT EXISTS `classifieds` (
  `classified_id` int(255) NOT NULL AUTO_INCREMENT,
  `title` text COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `category_id` int(10) NOT NULL,
  `name` text COLLATE utf8_unicode_ci NOT NULL,
  `authorized` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`adid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=177 ;

--
-- Dumping data for table `classifieds`
--

INSERT INTO `classifieds` (`classified_id`, `title`, `description`, `category_id`, `name`, `authorized`) VALUES
(1, 'Test Classified', 'Here is the First Test classified listing.', 1, 1);

INSERT INTO `classifieds` (`classified_id`, `title`, `description`, `category_id`, `name`, `authorized`) VALUES
(2, 'GMC For Sell', 'Looks like new 1979 GMC.', 6, 1);

ここ

$query = "SELECT category_id, COUNT(title) FROM classifieds GROUP BY category_id"; 
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result)
$num_items_in_category = $row['COUNT(title)'];
echo "<><a href='category-".$row['id'].".php' >".$row['name'].$num_items_in_category."</a></li>";

ありがとう

4

2 に答える 2

2

SQL を少し変更して、結果をループしますか?

$query = "SELECT c.id, c.name,
                 COUNT(cl.category_id) AS num_items_in_category
              FROM category_id c
                 LEFT JOIN aclassifieds cl ON cl.category_id=c.id
              GROUP BY c.id";  
$result = mysql_query($query) or die(mysql_error()); 

while ($row = mysql_fetch_array($result)) {
    echo "<li><a href='category-".$row['id'].".php' >".$row['name'].$row['num_items_in_category']."</."</a></li>"; 
}
于 2012-05-11T04:05:56.883 に答える
0

他の誰かが私のこれに利益をもたらしたい場合に備えて:

enter $query = "SELECT c.id, c.name,
             COUNT(cl.title) AS num_items_in_category
          FROM categories c
             LEFT JOIN classifieds cl ON cl.category_id=c.id
          GROUP BY c.id";
  $result = mysql_query($query) or die(mysql_error()); 

while ($row = mysql_fetch_array($result)) { echo "

  • ".$row['name'].$row['num_items_in_category']."
  • "; } ありがとう

    于 2012-05-11T16:22:03.357 に答える