Делаю подсчет кол-ва постов по категориям. Но почему-то, если их больше 9, то есть двузначное число становится, то отображает только первую цифру числа: то есть если у меня в таблице 34 поста, он мне выдает [3]. PHP: <? $kategor = mysql_query ("SELECT * FROM kategor",$db); while ($kateg = mysql_fetch_array ($kategor)) { $sum_topik = "SELECT COUNT(*) FROM bd WHERE kod=1 and kat=".$kateg["id"]; $totaltop = mysql_query($sum_topik); $f_com = mysql_result($totaltop, 0); $total_topik = $f_com[0]; if ($kateg["id"]==$kat) { ?> <td class="tabl_comment1"><a href="../kategor.php?kat=<?php echo $kateg["id"];?>"><?php echo $kateg["title"];?></a> <span class="sum_top">[<?php echo $total_topik;?>]</span></td> </tr> <? } else { ?> <td onMouseOver="this.style.backgroundColor='#FDD095'" onMouseOut="this.style.backgroundColor='#F8BD71'"><a href="../kategor.php?kat=<? echo $kateg["id"];?>"><? echo $kateg["title"];?></a> <span class="sum_top">[<?php echo $total_topik;?>]</span></td> </tr> <? } } ?>
Какой ужас. А если у тебя тысяча категорий вернется в первом селекте, ты будешь 1000 запросов на каждой итерации делать?
таблица bd id int(5) auto_increment kat int(2) title varchar(255) text text view int(7) таблица kategor id int(5) title varchar(255) text text
Ну примерно так, Select count(*)as num, k.* from `bd` b left join `kategory` k on b.`kat`= k.`id` group by b.`kat`