Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Não funcionou aqui :x
mostre como fez e explique o que é "não funcionou aqui"
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
(:
para pegar o resultado, tem que usar mysql_fetch_*
Poderia me mostrar como ficaria o código em meu caso?
No link há um exemplo. Tente fazer e poste suas dúvidas
mostrar como seria no seu caso seria fazer para você. Não é esse o propósito do fórum
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...
$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
pra isso tb serve o mysql_fetch_array() tb, não???
ou entre essas duas sintaxes tem alguma diferença???
>
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
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:
Pode usar count:
SELECT count(campo) as total FROM tabela WHERE condicao;
será retornado o campo "total", com o total de ocorrÊncias da condição WHERE