Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

vsempre

Contar Registos

Mensagens Recomendadas

vsempre    0
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);

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
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 :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
vsempre    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tico@PT    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
vsempre    0
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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
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 :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade