Jump to content
vsempre

Contar Registos

Recommended Posts

vsempre

Boas

Estou aqui com um pequeno problema.

Estou a fazer um directório e precisava de um "script" que me conta-se o número de registos que cada categoria tem. Algo do género:

Desporto (1) - Saúde (5) - Informática (2)....

O código que tenho para aparecer as categorias é este:

mysql_select_db($database_ligacao, $ligacao);
$query_rsSitesCat = "SELECT * FROM sites_categorias ORDER BY nome ASC";
$rsSitesCat = mysql_query($query_rsSitesCat, $ligacao) or die(mysql_error());
$row_rsSitesCat = mysql_fetch_assoc($rsSitesCat);
$totalRows_rsSitesCat = mysql_num_rows($rsSitesCat);

Já tentei usar isto mas apenas aparece o total da primeira categoria que depois é repetido pelas outras.

mysql_select_db($database_ligacao, $ligacao);
$query_rsCatTotal = "SELECT * FROM sites_categorias WHERE id = $row_rsSitesCat[id]";
$rsCatTotal = mysql_query($query_rsCatTotal, $ligacao) or die(mysql_error());
$row_rsCatTotal = mysql_fetch_assoc($rsCatTotal);
$totalRows_rsCatTotal = mysql_num_rows($rsCatTotal);

Share this post


Link to post
Share on other sites
yoda

Boas,

Experimenta isto :

mysql_select_db($database_ligacao, $ligacao);
$query_rsSitesCat = "SELECT nome, COUNT(nome) FROM sites_categorias GROUP BY nome";
$rsSitesCat = mysql_query($query_rsSitesCat, $ligacao) or die(mysql_error());

while($row = mysql_fetch_assoc($rsSitesCat)){
echo $row['name']." ("$row['COUNT(name)'].") - ";
}

PS : Não testei, por isso pode ter erros :)

Share this post


Link to post
Share on other sites
vsempre

Boas,

Obrigado pela ajuda.

Estou a ter um erro nesta linha e não estou a conseguir dar conta, será que me podes ajudar?

echo $row['name']." ("$row['COUNT(name)'].") - ";

O erro é:

Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' line 160

Share this post


Link to post
Share on other sites
vsempre

Boas,

Já funciona, no entanto tenho o mesmo problema..

Ele conta o primeiro registo e depois dá o valor desse registo para todos.. :)

Share this post


Link to post
Share on other sites
Tico@PT

Boas,

O problema está que na query esle está a utilizar os campos de select em PT e estás a ir buscar no row os campos em EN.

Deverá ser algo do género:

echo $row['nome']." (".$row['COUNT(nome)'].") - ";

Acho que assim já deve funcionar.

Cumps

Share this post


Link to post
Share on other sites
vsempre

Boas,

Eu tenho duas tabelas:

Tabela Categorias, com:  id + nome

Tabela Sites com: id + cat_id + nome + imagem + url + texto

Se não estou em erro tenho que utilizar duas querys.

1 - Para listar todas as categorias

2 - Que me diga o total de websites que tenho por categoria, para isso tenho que fazer uma query à tabela "sites", correcto?

Share this post


Link to post
Share on other sites
yoda

Ah!

Então tens de fazer um JOIN, para numa só query ir contar os registos que pretendes.

$query_rsSitesCat = "SELECT sites_categorias.nome AS nome, COUNT(sites.cat_id) FROM sites_categorias INNER JOIN sites ON sites_categorias.id = sites.cat_id GROUP BY sites_categorias.nome";

Mais uma vez, não testei, pelo que se tiveres à mão o phpmyadmin ou algum cliente mysql que te corra as queries, era preferivel :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.