2012-09-03 6 views
0

Попытка получить код для отображения категорий моих сообщений, и у меня возникла проблема с представлением количества сообщений для каждой категории.list количество сообщений по категории

хорошо, вы получите мою точку, глядя в коде, в настоящее время общее количество категорий, перечисленных в каждой категории ...

здесь мы идем:

<?php 
$listresult = mysql_query("SELECT distinct category FROM test_blog") 
or die(mysql_error()); 

$totalpostspercategory = mysql_num_rows($listresult); 

echo "<ul>"; 
    while($row = mysql_fetch_array($listresult)) { 

if (strlen($row['category']) > 45) { 
    $row['category'] = substr($row['category'],0,45) . " ..."; 
} 

echo "<li><a href='index.php?category=" . $row['id'] . "'>" . $row['category'] ."</a> (" . $totalpostspercategory . ")</li>"; 
} 
echo "</ul>"; 

?> 
+0

Каковы результаты на вашей странице? есть ли ошибка, является ли число неправильным? как жизнь? – ajon

ответ

1

Предполагая, что ваша таблица выглядит как это . , ,

create table your_table (
    blog_post_id integer not null, 
    category varchar(35) not null, 
    primary key (blog_post_id, category) 
); 

insert into your_table values (1, 'food'); 
insert into your_table values (1, 'recipes'); 
insert into your_table values (1, 'tofu'); 
insert into your_table values (2, 'food'); 
insert into your_table values (3, 'tofu'); 
insert into your_table values (3, 'vacation'); 

Вы можете получить счет непосредственно с помощью SQL с помощью

select category, count(*) num_posts 
from your_table 
group by category 
order by category; 

category count 
-- 
food  2 
recipes 1 
tofu  2 
vacation 1 
+0

thx, вот именно то, что я искал. как я могу получить информацию? i перечислить $ row ['category'], но как я эхо счет? –

+0

Дайте столбцу псевдоним («num_posts» выше), и вы должны иметь доступ к нему с помощью '$ row ['num_posts']'. Dbms предоставит имя столбца, если вы не предоставите псевдоним, но, вероятно, безопаснее сделать это самостоятельно. Таким образом, это не изменится. (Имя, которое предоставляет dbms, может измениться, если вы переключитесь, скажем, на SQLite на MySQL. Я не уверен.) –

Смежные вопросы