..:: MX Studio Fóruns ::..: Ajuda com Pesquisa e exibição - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ajuda com Pesquisa e exibição estou fzendo uma pesquisa no sql e talz ...

#1 User is offline   Djulian M. 

  • Group: Membros
  • Posts: 17
  • Joined: 18-April 07

  Posted 18 April 2007 - 09:48 AM

Estou tentando fazer um top flooders, o autor que ter + comentarios fica no top.
Ele gera uma conta de quantos comentarios o autor fez ..

$consultaz = "SELECT
COUNT(a.autor) AS quant,
a.autor,
b.nick,
b.id_usuario,
b.usuario,
FROM
comentarios as a,
usuarios as b
WHERE
a.autor = b.id_usuario
ORDER BY
quant
DESC LIMIT
5";

E depois lista ...

Mas está dando erro:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/army5/public_html/lista_usuarios.php on line 21

Linha 21:
19: $execz = mysql_query($consultaz);
21: $n = mysql_fetch_array($execz);

Tentei fazer assim tbem na linha 21:
while ($n = mysql_fetch_array($execz)) {

Tbem deu erro, acho que é um erro na minha pesquisa :S thumbdown.gif
0

#2 User is offline   M. Vinícius Brandão 

  • Group: Membros
  • Posts: 493
  • Joined: 02-January 06

Posted 18 April 2007 - 10:42 AM

na linha 19 se for o query q penso ser falta
a varialvel q faz a conexão com banco de dados
daih ficaria assim.
(como não sei o nome da varialvel q vc colocou no seu script para fazer a conexão, coloquei $conectaDB como exemplo)

QUOTE
$execz = mysql_query($consultaz, $conectaDB);


thumbsup.gif
0

#3 User is offline   Djulian M. 

  • Group: Membros
  • Posts: 17
  • Joined: 18-April 07

Posted 18 April 2007 - 10:48 AM

não é a conexao com o db...

eh a forma de pesquisa mesmo ..

eu tinha assimm

CODE
include "conexao.php";
$buscaaax = mysql_query("SELECT COUNT(id_hit) AS quant FROM visitas GROUP BY card ORDER BY quant DESC LIMIT 5");
while ($n = mysql_fetch_array($buscaaax)) {
$card = $n["card"];
}

$buscaax = mysql_query("SELECT * FROM usuarios LIMIT 5");
while ($n = mysql_fetch_array($buscaax)) {
$id_usuario = $n["id_usuario"];
$nick = $n["nick"];
$usuario = $n["usuario"];
$miniatura = $n["miniatura"];


$x = mysql_query("SELECT count(*) FROM comentarios WHERE autor='$id_usuario'");
$totalx = mysql_result($x,0);

echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td class=\"linha1\" onmouseOver=\"this.className='linha2';\" onmouseout=\"this.className='linha1';\"><center><a href=\"index.php?sessao=perfil&uid=$id_usuario\"><img src=\"$miniatura\" alt=\"\" width=\"100\" height=\"75\" border=\"0\">$nick - ($totalx)</a></center><br></td>
  </tr>
</table>";
}


Só que ao inves de ele mostrar os que tinha mais comentarios, ele mostrava por id ...

id1
id2
id3
id4
id5

ao inves de mostrar

id1 - 30 comentarios
id5 - 29 comentarios
id3 - 20 comentarios

deu pra entender ? :X
0

#4 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 18 April 2007 - 10:57 AM

QUOTE
$buscaaax = mysql_query("SELECT COUNT(id_hit) AS quant FROM visitas GROUP BY card ORDER BY quant DESC LIMIT 5");
while ($n = mysql_fetch_array($buscaaax)) {
$card = $n["card"];
}

Essa linha acredito que não precisa.

QUOTE
$totalx = mysql_result($x,0);
Troque por

QUOTE
$totalx = mysql_num_rows($x);


Já que é só para contar mesmo quantos registros em relação aos comentários existem. thumbsup.gif

Qualquer dúvida, poste aí.

[]'s



0

#5 User is offline   Djulian M. 

  • Group: Membros
  • Posts: 17
  • Joined: 18-April 07

Posted 18 April 2007 - 11:04 AM

irei tentar fazer algo com isso q vc me falou tongue.gif

vlw cara
0

#6 User is offline   Djulian M. 

  • Group: Membros
  • Posts: 17
  • Joined: 18-April 07

Posted 18 April 2007 - 05:41 PM

n deu certo ainda :|


eu fiz umas mudanças .. agora ele está mostrando os resultados .. mas apenas mostrando 1. ..

CODE
<?
include "conexao.php";

$sql = "SELECT * FROM usuarios";
$res = mysql_query($sql) or die($sql."<br>".mysql_error);
$row = mysql_fetch_assoc($res);
$id_usuario = $row["id_usuario"];

$sqle = "SELECT * FROM comentarios";
$resq = mysql_query($sqle) or die($sqle."<br>".mysql_error);
$rox = mysql_fetch_assoc($resq);
$autor = $rox["autor"];

$x = mysql_query("SELECT count(*) FROM comentarios WHERE autor='$id_usuario' GROUP BY autor DESC LIMIT 5");
$totalx = mysql_result($x,0);

$sq1 = "SELECT * FROM usuarios WHERE id_usuario='$autor' ORDER BY '$totalx'";
$exec = mysql_query($sq1);
while ($r = mysql_fetch_array($exec)) {
$nick = $r["nick"];

echo "<center><a href=\"index.php?sessao=perfil&uid=$id_usuario\"><span class=\"linha1x\" onmouseOver=\"this.className='linha2x';\" onmouseout=\"this.className='linha1x';\">$nick - ($totalx)</span></a></center><br>";
}
?>


huh.gif
0

#7 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 19 April 2007 - 03:22 PM

Onde vc usa LIMIT no mysql põe apenas 5, mas o correto é você informar ao mysql a partir de que registro é pra mostrar e a quantidade limite, assim:
SELECT * FROM usuarios LIMIT 0,5;
Assim procura 5 registros apartir do primeiro.

Depois vc coloca ORDER BY '$totalx', e no lugar disso deveria ter o indice de uma coluna, mas $totalx é apenas um número.
QUOTE
$sq1 = "SELECT * FROM usuarios WHERE id_usuario='$autor' ORDER BY '$totalx'";

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)