Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

iSkull

Como saber que usuário possui mais registros na tabela.

Recommended Posts

Sou novato em php e mysql, e gostaria de saber como descobrir quem possui a maior tabela. Vou explicar na teoria.

 

Bom vamos dizer que eu possuo a tabela comentarios_noticias, e nesta tabelas 4 usuários postaram um comentário.

 

Skull postou 2

Guilherme postou 1

Bruna postou 1

 

Gostaria de saber um código que mostra se o usuário que possui mais registros criados dentro da tabela comentarios_noticias.

Nesse caso seria o Skull, mas caso o Guilherme posta se mais dois comentários apareceria o do Guilherme.

 

Entenderam? :joia:

 

Alguém poderia me ajudar? HELP

 

Alguém poderia ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz da seguinte maneira

<?

$nada = mysql_query("SELECT count(voto_usuario) as total FROM enquete_votos WHERE voto_usuario");

echo $nada;

?>

e apareceu

Resource id #119

 

(:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O máximo que consegui desenvolver foi o seguinte código:

 

<?

$sql = "SELECT count(voto_usuario) as total FROM enquete_votos WHERE voto_usuario";

$result = mysql_query($sql);

mysql_free_result($result);

?>

 

Mas não funcionou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

$result tem o "objeto" de retorno da consulta. você deve passá-lo a mysql_fetch_Assoc(), que retornará um array, cujos índices são os noems dos campos retornados pela busca.

 

veja o link que passei. lá está o código. se quiser só copiar e colar, copie de lá. mas sugiro que faça e entenda

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra isso tb serve o mysql_fetch_array() tb, não???

 

ou entre essas duas sintaxes tem alguma diferença???

 

mysql_fetch_* são todos para a mesma coisa.

é que mysql_fetch_array retorna, também, índices numéricos para os campos. Como ninguém usa, fica ocupando memória à toa. fetch_assoc retorna só os índices em string

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a função do While?

 

Bom, um while também chamado por muitos de "laço", tem a função de repetição, aonde ela testa uma condição e executa um comando, ou até um bloco de comandos, até aonde a condição que está sendo testada seja FALSE.

 

Exemplo:

 

$comments_query = "SELECT * FROM comentarios ORDER BY id ASC";
while($dados = mysql_fetch_array){

}

 

mysql_fetch_array

 

Obtém uma linha como uma matriz associativa, uma matriz numérica, ou ambas.

 

Descrição:

 

array mysql_fetch_array ( resource $result [, int $result_type ] )

Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

 

Parâmetros:

 

result

O resultado resource que esta sendo avaliado. Este resultado vem de uma chamada a mysql_query().

 

result_type

 

O tipo de array que deve ser obtida. é uma constante e pode ter os seguintes valores: MYSQL_ASSOC, MYSQL_NUM, e o valor padrão de MYSQL_BOTH.

 

Valor Retornado

 

Retorna uma array que corresponde a linha obtida, ou FALSE se não houver mais linhas. O tipo da array retornada depende de como result_type esta definido. Usando MYSQL_BOTH (padrão), você terá um array com ambos os índices, numérico e associativo. Usando MYSQL_ASSOC, você tem apenas os índices associativos (como mysql_fetch_assoc() funciona), usando MYSQL_NUM, você tem apenas os índices numéricos (como mysql_fetch_row() funciona).

 

fonte: php.net

 

Bom, como padrão o mysql_fetch_array já vem configurado como MYSQL_BOTH, ou seja ele gera um array com dados do nosso banco de dados.

 

Eu coloquei a variável $dados como passagem para esse dados do banco de dados.

Aonde ela que vai ser a responsável por nos mostrar quais os dados de cada campo.

 

Exemplo, eu quero pegar o dado do campo "nome", veja como fica:

 

$nome = $dados['campo'];

 

Lembrando que se ela estiver fora do while ela não irá retornar todos os dados do banco de dados, apenas o último ou o primeiro dado, depende de como está listado no banco de dados ASC ou DESC.

 

Voltando para nosso caso, veja um exemplo de como ficaria:

 

$comments_query = "SELECT * FROM comentarios ORDER BY id ASC";
while($dados = mysql_fetch_array($comments_query)){
$link = $dados['site'];
echo "Meu site: <a href='{$link}'>click aqui</a>";
}

 

Lembrando novamente que devemos colocar o nome do campo na variável $dados:

 

$dados['nome do campo'];

 

No seu caso você teria de listar como ASC = crescente, aonde ele pega do maior para o menor.

 

Espero ter ajudado! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.