Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Ordem De Registros


otaviojames

Pergunta

Ola Amigos,,,

Seguinte, tipow armei um esquema aqui mais to tento muita dificuldade pra arrumar..

QUERO QUE ELE ORDENE POR PONTOS TIPOW " paquera WHERE cat "

AI ELE TA MOSTRANDO O NOME DA PESSOA E O TOTAL DE PONTOS QUE ELA TEM>>>

COMO EU ORDENO NESTE COD AI O QUE TEM MAIS PONTOS??

TIPOW QUE TEM 15 PONTOS É O 1 E TALS>>


<?php	
include("conexao.php");
$conexao = @mysql_connect($host,$user,$pass);
if(!$conexao)
die("não foi possivel conectar no servidor MySQL. Erro: " . mysql_error());
mysql_select_db($db) or die("não foi possivel usar o banco de dados. Erro: " . mysql_error());


$conexao = mysql_connect("$host","$user","$pass");
$db = mysql_select_db("users");
$sql = "SELECT * FROM users order by id LIMIT 1000  ";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");


while ($linha=mysql_fetch_array($resultado)) {
$id = $linha['id'];
$nome = $linha['nome'];


// contando comentarios


$cat1 = $id;
$comm = "SELECT * FROM paquera WHERE cat LIKE \"$cat1\"";
$commq = mysql_query($comm);
$ncomm = mysql_num_rows($commq);

?>

Meu id é <?echo $id?> Meu nome é: <?echo $nome?> -<? echo $ncomm; ?> <p>
<? } ?>

valeu

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Acharia se tivesse algum campo id_user aqui:

CREATE TABLE `paquera` (

`id` int(11) NOT NULL auto_increment,

`cat` varchar(255) NOT NULL default '',

`de` varchar(255) NOT NULL default '',

`comentario` varchar(255) NOT NULL default '',

`email` varchar(255) NOT NULL default '',

PRIMARY KEY (`id`)

) TYPE=MyISAM

Mas não vi nenhum... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Acharia se tivesse algum campo id_user aqui:
CREATE TABLE `paquera` (

`id` int(11) NOT NULL auto_increment,

`cat` varchar(255) NOT NULL default '',

`de` varchar(255) NOT NULL default '',

`comentario` varchar(255) NOT NULL default '',

`email` varchar(255) NOT NULL default '',

PRIMARY KEY (`id`)

) TYPE=MyISAM

Mas não vi nenhum... smile.gif

mais temmmmn

o cat é o meu id user !!

cat = id_user eu tava falando id_user pra vocês entenderem melhor

Link para o comentário
Compartilhar em outros sites

  • 0
Ah bom!!! biggrin.gif

É, então o que você vai ter que fazer é selecionar a soma e agrupar por cat. Assim irá retornar quantas vezes aquele registro aparece na tabela.

Conseguiu essa parte?

ps: não esqueça de ir nos mostrando o código da busca, não só a página com o resultado! wink.gif

Isus já ta fazendo ele já ta somando veja na frente do meu nome nesse link

http://ebaladas.com/topzine.php já pegou quantos registros tem!!!!

agora como vou odernalo?

Link para o comentário
Compartilhar em outros sites

  • 0
Ah bom!!! biggrin.gif

É, então o que você vai ter que fazer é selecionar a soma e agrupar por cat. Assim irá retornar quantas vezes aquele registro aparece na tabela.

Conseguiu essa parte?

ps: não esqueça de ir nos mostrando o código da busca, não só a página com o resultado! wink.gif

Isus já ta fazendo ele já ta somando veja na frente do meu nome nesse link

http://ebaladas.com/topzine.php já pegou quantos registros tem!!!!

agora como vou odernalo?

Pra ordernar você faz da forma convencional, com ORDER BY pelo campo que você quer ordernar.

Esse campo que você quer ordernar pode ser um campo "imaginário", como a soma de outros campos ou o máximo de um campo, mas pra isso você tem que criar um alias [codinome] praquele campo.

Caso não tenha entendido nada do que eu disse, poste o código aí... wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Cara isso:

cat = id_user eu tava falando id_user pra vocês entenderem melhor

não tah certo, pois cat é um varchar(255) e id_user é um int(11). Antes de montar um banco você deve modela-lo da melhor forma possivel, assim como o fabyo, error e outros feras falam, do contrário você vai ter esse tipo de problemas durante o desenvolvimento do teu site...

Abraço

crystian

editei o post.... estou escrevendo tudo errado....rsrsrs

Link para o comentário
Compartilhar em outros sites

  • 0
Cara isso:

cat = id_user eu tava falando id_user pra vocês entenderem melhor

não tah certo, pois cat é um varchar e id_user(255) é um int(11). Antes de montar um banco você deve modela-lo da melhor forma possivel, assim como o fabyo, error e outros feras falam, do contrário você vai ter esse tipo de problemas durante o desenvolvimento do teu site...

Abraço

crystian

Verdade.

O ideal ainda é você deixar os campos com o mesmo nome, inclusive, pra deixar a relação entre as tabelas melhor, não é necessário, mas é melhor. O que é fortemente recomendado é que os campos que se relacionam sejam do mesmo tipo, isso é importante... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bom vou otimizalo é que to desesperado mesmo hehehehe vo por int nele

o cod pra ordena é esse

o problema é que são duas tabelas com vou ordenalo:??

<?php 
include("conexao.php");
$conexao = @mysql_connect($host,$user,$pass);
if(!$conexao)
die("não foi possivel conectar no servidor MySQL. Erro: " . mysql_error());
mysql_select_db($db) or die("não foi possivel usar o banco de dados. Erro: " . mysql_error());


$conexao = mysql_connect("$host","$user","$pass");
$db = mysql_select_db("users");
$sql = "SELECT * FROM users LIMIT 10  ";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");


while ($linha=mysql_fetch_array($resultado)) {
$id = $linha['id'];
$nome = $linha['nome'];


// contando comentarios


$cat1 = $id;
$comm = "SELECT * FROM paquera  WHERE cat LIKE \"$cat1\" order by cat";
$commq = mysql_query($comm);
$ncomm = mysql_num_rows($commq);

?>

Meu id é <?echo $id?> Meu nome é: <?echo $nome?> -<? echo $ncomm; ?> <p>
<? } ?>

Link para o comentário
Compartilhar em outros sites

  • 0

Não estou vendo nada nessa sua busca parecido com o que eu fiz lá no tópico do gladiador.

Você vai ter que usar o GROUP BY para fazer uma só query que já trás todos esses resultados, ententeu? Isso você vai ter que fazer usando também a função COUNT() do MySQL pra contar quantos registros com a mesma cat existem...

Entendeu? huh.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Não estou vendo nada nessa sua busca parecido com o que eu fiz lá no tópico do gladiador.

Você vai ter que usar o GROUP BY para fazer uma só query que já trás todos esses resultados, ententeu? Isso você vai ter que fazer usando também a função COUNT() do MySQL pra contar quantos registros com a mesma cat existem...

Entendeu? huh.gif

não entendi nem o seu nem o de cimaaaaa... to fuuu......... tenho 5 anos rsrs me expliquem melhor e desculpa o encomodooo

Link para o comentário
Compartilhar em outros sites

  • 0

Certo. biggrin.gif

Pra começo de conversa, imagino que você não faça idéia do que seja uma foreign key ou chave estrangeira, não é?

Chave estrangeira é um campo que faz o link entre 2 tabelas diferentes. Vou dar ume exemplo que você vai entender melhor:

----tabela users----

user_id [campo auto_increment com a id do usuário]

username [campo VARCHAR com o nome do cidadão]

password [não precisa explicar, né?]

hobbies [campo que eu criei pra encher linguiça]

----tabela comments----

com_id [campo auto_increment com a id do comentário!]

user_id [campo INT normal que vai conter a id do usuário que postou o comentário]

title [título do comentário]

body [corpo do comentário]

date [data do comentário]

Perceba que existe uma interligação entre as tabelas no campo user_id porque o valor dele em uma tabela se relaciona diretamente com o valor dele na outra, pra resgatar quem é que postou o comentário. Esses campos que interligam uma tabela a outra são as foreign keys ou chaves estrangeiras.

Nesse seu caso, o campo cat da tabela dos dos comentários seria uma foreign key porque serve simplesmente pra relacionar as 2 tabelas.

Entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Ah...hehhe... você já fez...

O cat de uma tabela é a id da outra. Só teria que mudar o nome e o tipo pra ficar mais organizado, mas não é por aí que você vai resolver o seu problema.

Agora, acho que seria interessante você usar o COUNT() e o GROUP BY para trazer a soma, agrupando pela id (cat) ao invés de usar o método de fazer outra select dentro do laço do while, como você fez... smile.gif

Tenta dar outra lida lá no post que o gladiador me ajudou e tenta montar alguma coisa com o GROUP BY. Se der errado eu te ajudo, não tem problema... smile.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...