Ir para conteúdo

POWERED BY:

Arquivado

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

manoaj

top exibindo de acordo com votos

Recommended Posts

pessoal eu queria saber como faço pra exibir os meus registros dos banco de dados de acordo com uma tabela , por exemplo eu tenho uma tabela onde são registrados os participantes do top e nessa tabela tenho a coluna votos então eu queria exibir de acordo com quem tem mais votos , e da uma colocação para cada candidato , ou seja o candidato que tem mais votos eu queria que alem de ser exibido em primeiro eu queria também que aparecesse o numero 1 mostrando que ele é o primeiro e assim sucessivamente com o restante dos usuarios .

é possivel faser isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Considerando que você esteja utilizando o MySQL, lhe apresento o ORDER BY.

 

Uma demo rapidinha:

SELECT {something} FROM {table} ORDER BY votes_quantity DESC

 

:thumbsup:/>

sim isso eu sei mais ou menos o problema é que eu queria saber como faço pra dar o numero da posição deles em relação a quantidade de votos por exemplo o usuario joao tem 200 votos e o usuario marcos tem 100 votos então eu queria exibir um numero de classificação pra eles falando que o joao esta em primeiro e o marcos esta em segundo

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim isso eu sei mais ou menos o problema é que eu queria saber como faço pra dar o numero da posição deles em relação a quantidade de votos por exemplo o usuario joao tem 200 votos e o usuario marcos tem 100 votos então eu queria exibir um numero de classificação pra eles falando que o joao esta em primeiro e o marcos esta em segundo

 

 

Bom se entedi acho que no momento em que você estiver fazendo o laço

while({variavel} = {função}){

$posicao++ //acrescente esse contador a cada volta que o laço fizer ele conta mais um.

}

 

ok ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim isso eu sei mais ou menos o problema é que eu queria saber como faço pra dar o numero da posição deles em relação a quantidade de votos por exemplo o usuario joao tem 200 votos e o usuario marcos tem 100 votos então eu queria exibir um numero de classificação pra eles falando que o joao esta em primeiro e o marcos esta em segundo

 

Desde que as duas tabelas compartilhem alguma coluna em comum.

 

Ex:

 

Tabela usuário:
id | nome | idade
01 | José | 20
02 | João | 18

Tabela voto:
id | usuario
01 |   01 
02 |   01
03 |   02
04 |   01
05 |   02
06 |   02
07 |   01

 

Veja que a coluna usuário da tabela voto remete à coluna id da tabela usuario

 

Isso se resolve com JOIN. Selecionamos a coluna de uma segunda tabela com os critérios informados.

 

A consulta - para este caso - fica assim:

 

select nome, count(usuario.id) as votos from usuario JOIN voto ON voto.usuario = usuario.id group by usuario.id;

 

Resultado

+-------+-------+
| nome  | votos |
+-------+-------+
| José  |     4 |
| João  |     3 |
+-------+-------+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom se entedi acho que no momento em que você estiver fazendo o laço

while({variavel} = {função}){

$posicao++ //acrescente esse contador a cada volta que o laço fizer ele conta mais um.

}

 

ok ;)/>

 

 

mano no caso estou fazendo while assim olha

<h1 class="title_cat">Categoria: <span style="color:#FFF;">Master</span></h1>
<ul id="list-artist_org">
<?php
$rap = mysql_query("SELECT id_user, nome, categoria, votos, foto, titulo, bibliografia, nascimento, cadastro_top_data FROM users WHERE categoria='master' ORDER BY voto DESC")
or die(mysql_error());
if(@mysql_num_rows($rap) == '0'){
echo "<div class=\"alert_info \">Não existem usuarios cadastrados nesta categoria, se você conhece algum usuario que se encaixe nesta categoria cadastre ele!</div>";
}else{
while($res_rap = mysql_fetch_array($rap)){

	$id                 = $res_rap[0];
	$nome               = $res_rap[1];
	$categoria          = $res_rap[2];
	$ideal              = $res_rap[3];
	$foto               = $res_rap[4];
	$titulo             = $res_rap[5];
	$bibliografia       = $res_rap[6];
	$nascimento         = $res_rap[7];
	$cadastro_top_data  = $res_rap[8];


?>   

<li>


</li>


<?php
}
}
?>
</ul>

como eu aplico tua logica ae? :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, aquela variavel $posicao++ da qual eu falei ela simplesmente vai atribuindo valor a cada volta do laço

é semelhante ao laço for(..; ..; $i++){} no caso ficaria assim:

 

1º volta do laço:

$posicao vale "1"

 

2º volta do laço:

$posicao vale "2"

 

e assim vai...

o que faz ele ir somando de um em um é o operado ++(operador de incremento), a posição do usuario é algo que

varia então não precisa guardar no banco...

eu faria da seguinte forma:

 

 

while($res_rap = mysql_fetch_array($rap)){

$id                 = $res_rap[0];
$nome               = $res_rap[1];
$categoria          = $res_rap[2];
$ideal              = $res_rap[3];
$foto               = $res_rap[4];
$titulo             = $res_rap[5];
$bibliografia       = $res_rap[6];
$nascimento         = $res_rap[7];
$cadastro_top_data  = $res_rap[8];

$posicao++	


echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

}
?>
Resultado:
Posição: 1º Usuario: Fernando
Posição: 2º Usuario: Maria
Posição: 3º Usuario: Manuel


 

acho que mais ou menos assim parceiro tenta ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, aquela variavel $posicao++ da qual eu falei ela simplesmente vai atribuindo valor a cada volta do laço

é semelhante ao laço for(..; ..; $i++){} no caso ficaria assim:

 

1º volta do laço:

$posicao vale "1"

 

2º volta do laço:

$posicao vale "2"

 

e assim vai...

o que faz ele ir somando de um em um é o operado ++(operador de incremento), a posição do usuario é algo que

varia então não precisa guardar no banco...

eu faria da seguinte forma:

 

 

while($res_rap = mysql_fetch_array($rap)){

$id                 = $res_rap[0];
$nome               = $res_rap[1];
$categoria          = $res_rap[2];
$ideal              = $res_rap[3];
$foto               = $res_rap[4];
$titulo             = $res_rap[5];
$bibliografia       = $res_rap[6];
$nascimento         = $res_rap[7];
$cadastro_top_data  = $res_rap[8];

$posicao++	


echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

}
?>
Resultado:
Posição: 1º Usuario: Fernando
Posição: 2º Usuario: Maria
Posição: 3º Usuario: Manuel


 

acho que mais ou menos assim parceiro tenta ai ;)/>

erro na linha Parse error: syntax error, unexpected T_ECHO in

echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

 

erro na linha Parse error: syntax error, unexpected T_ECHO in

echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

se tiver como não seria mais facil da a posição deles de acordo com o numero de votos seila ou algo do tipo pq o que tem mais votos sempre vai ficar em acima do que tem menos devido ao order by

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro na linha Parse error: syntax error, unexpected T_ECHO in

echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

 

Verifique se há um ponto-e-vírgula (;) no final da linha anterior a essa

 

se tiver como não seria mais facil da a posição deles de acordo com o numero de votos seila ou algo do tipo pq o que tem mais votos sempre vai ficar em acima do que tem menos devido ao order by

 

Não, essa forma que ele postou é a mais fácil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro na linha Parse error: syntax error, unexpected T_ECHO in

echo 'Posição: '.$posicao.'º Usuario:'.$nome.'."<br>";

 

 

se tiver como não seria mais facil da a posição deles de acordo com o numero de votos seila ou algo do tipo pq o que tem mais votos sempre vai ficar em acima do que tem menos devido ao order by

 

 

o erro é o seguinte...

la no código na variável $posicao faltou o ;(ponto e virgula).

$posicao++;

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera funcionou mas esta falando que a variavel é indefinida Notice: Undefined variable: posicao

 

e também to com outro problema como tem uma paginação os numeros voltam a se repetir na pagina seguinte tipo vai do 1 ao 10 na primeira e na segunda começa do 1 denovo ? pq

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo a variavel $posicao++ é indefinida pq não tem um valor mas ela ali no caso não precisa de um como eu faria pra que não ocorrece este erro, eu tentei algumas formas pra resolver o problema da paginação mas não obtive sucesso :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

delicia assim você me matar ai se eu te pego ai ai se eu te pego ops tou no forum kkk

 

minha contriuição espero que ajude qualquer coisa soh manda mp pra mim ow adiciona no msn boa sorte abrçççç

 

 

<?
$i = 0;
$select = "SELECT * FROM users WHERE categoria='master' ORDER BY votos DESC"; 
$result = mysql_query($select);
while($manoaj = mysql_fetch_array($result)){
$leitura = mysql_num_rows($result);
if($leitura <= "0"){
echo "<br><div align='center' bgcolor='#EBF2F9' class='conteudo'>Nenhuma Música cadastrada</div>";}
$n = $i+1;
$i++;
?>
<?=$n?>°
<?=$manoaj["id_user"]?> 
<?=$manoaj["nome"]?> 
<?=$manoaj["categoria"]?> 
<?=$manoaj["votos"]?> 
<?=$manoaj["foto"]?> 
<?=$manoaj["titulo"]?> 
<?=$manoaj["bibliografia"]?> 
<?=$manoaj["nascimento"]?> 
<?=$manoaj["cadastro_top_data"]?> 
<? } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

delicia assim você me matar ai se eu te pego ai ai se eu te pego ops tou no forum kkk

 

minha contriuição espero que ajude qualquer coisa soh manda mp pra mim ow adiciona no msn boa sorte abrçççç

 

 

<?
$i = 0;
$select = "SELECT * FROM users WHERE categoria='master' ORDER BY votos DESC"; 
$result = mysql_query($select);
while($manoaj = mysql_fetch_array($result)){
$leitura = mysql_num_rows($result);
if($leitura <= "0"){
echo "<br><div align='center' bgcolor='#EBF2F9' class='conteudo'>Nenhuma Música cadastrada</div>";}
$n = $i+1;
$i++;
?>
<?=$n?>°
<?=$manoaj["id_user"]?> 
<?=$manoaj["nome"]?> 
<?=$manoaj["categoria"]?> 
<?=$manoaj["votos"]?> 
<?=$manoaj["foto"]?> 
<?=$manoaj["titulo"]?> 
<?=$manoaj["bibliografia"]?> 
<?=$manoaj["nascimento"]?> 
<?=$manoaj["cadastro_top_data"]?> 
<? } ?>

mano pode me explicar o que tu fez kkkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao era isso que tu queria?

tipo eu precisava resolver o erro da variavel indefinida e o problema da paginação, pq toda vez que eu vou pra segunda pagina a contagem recomeça do 1 e euq ueria que continuace tipo a primeira vai do 1 ao 10 a segunda deveria continuar do 11 e assim por diante.

o codigo esta assim atualmente

 

<?php

$quantidade = 10;
$pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
$inicio     = ($quantidade * $pagina) - $quantidade;


$rap = mysql_query("SELECT id_do_user, nome, categoria, votos, foto, titulo, bibliografia, nascimento, cadastro_top_data FROM usuarios WHERE categoria='Master' ORDER BY votos DESC LIMIT $inicio, $quantidade")
or die(mysql_error());
if(@mysql_num_rows($rap) == '0'){
echo "<div class=\"alert_info \">Não existem usuarios cadastrados nesta categoria!</div>";
}else{
while($res_rap = mysql_fetch_array($rap)){

	$id_do_user_rap         = $res_rap[0];
	$nome_rap               = $res_rap[1];
	$categoria_rap          = $res_rap[2];
	$votos_rap              = $res_rap[3];
	$foto_rap               = $res_rap[4];
	$titulo_rap             = $res_rap[5];
	$bibliografia_rap       = $res_rap[6];
	$nascimento_rap         = $res_rap[7];
	$cadastro_top_data_rap  = $res_rap[8];   
       $posicao++;  
?>    
<div id="list_artist_top">

<li>

<div class="position">  <?php echo $posicao; ?>º</div>


</li>

</div>  
<?php
}
}
?>
</ul>

<?php
if(@mysql_num_rows($rap) == '0'){
echo "";
}else{
$sqltotal    = ("SELECT id_do_user FROM usuarios WHERE categoria='Master'");
$qrtotal     = mysql_query($sqltotal) or die (mysql_error());
$numerototal    = mysql_num_rows($qrtotal);
$totalpagina = ceil($numerototal/$quantidade);

echo "<a class=\"link_p\" href=\"?pg=pop&pagina=1\"><div class=\"numero_pg \">« Primeira página</div></a>";
 for($i = 1; $i <= $totalpagina; $i++){
if($i == $pagina)  
echo "<div class=\"atual_pg \">$i</div>";
 else
echo "<a class=\"link_p\" class=\"color_l_p\" href=\"?pg=pop&pagina=$i\"><div class=\"numero_pg \">$i</div></a>";
  }
echo "<a class=\"link_p\" href=\"?pg=pop&pagina=$totalpagina\"><div class=\"numero_pg \">Última página »</div></a>";
}
?>

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.