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

Tem Alguma Coisa Errada Aqui


doulo4ever

Pergunta

Galera, depois que deu certo aquele negócio de contabilizar os cliques que cada livro teve, eu fui fazer um codiguinho para mostrar os 8 mais clicados!

Mais deu alguma coisa errada, não está dando nenhum erro nem nada, mas não está listando direito, deve ter alguma coisa fora do lugar!

Para ver o que está acontecendo visitem:

http://www.cosmopolisemrede.com.br/utilitarios/biblioteca/

Abaixo o código que eu estou usando:

<?

$sql = "select idlivro, nome, cliques from biblio_acervo order by cliques desc limit 8";

$query = @mysql_query($sql);

if (!$query){

die ("Problemas ao executar o sql !!!");

} else {

echo "<table width=100%>";

while ($coluna = @mysql_fetch_array($query)){

$idlivro = $coluna["idlivro"];

$nome = $coluna["nome"];

$cliques = $coluna["cliques"];

if($cliques == '') {

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>0</b> visitas</td></tr>";

} else {

if($cliques > 0)

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>$cliques</b> visitas</td></tr>";

}

}

echo "</table>";

}

mysql_close($conn);

?>

Tem alguma coisa errada aí? Ou alguma coisa fora do lugar?

Obrigado pela força!!!

Paulo

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Experimenta mudar o comando SELECT para: (coloquei em vermelho o que você tem que adicionar)

$sql = "select idlivro, nome, cliques from biblio_acervo order by cliques desc limit 0,8";

Não sei se resolve, mas você pode tentar. Outra coisa:

if($cliques == '') {

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>0</b> visitas</td></tr>";

} else {

if($cliques > "0") { // você não abriu este bloco com uma chave no seu código

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>$cliques</b> visitas</td></tr>";

}

}

tenta fazer essas alterações... depois fala se der certo, beleza?

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

É galera, não sei o que está acontecendo mesmo!

Tentei usar as suas sugestões, na primeira (limit 0,8) continuou a mesma coisa...na segunda (if($cliques > "0") { // você não abriu este bloco com uma chave no seu código) deu um erro de parse error!

O que será que está fora do lugar ou faltando neste código?

Para verem o que está acontecendo basta entrar em http://www.cosmopolisemrede.com.br/utilitarios/biblioteca/ existe uma caixa "os mais visitados", mas o código não está listando corretamente os livro mais visitados!

Se alguém puder dar uma revisada neste código que fiz para ver o que está faltando ou fora do lugar eu agradeço muito!

Paulo

Link para o comentário
Compartilhar em outros sites

  • 0

Paulo,

Seu código parece estar OK... porque será que não tá ordenando? Realmente estava faltando abrir aquele bloco que eu indiquei, não sei porque tá dando esse erro! Essa linha de comentário que eu coloquei na frente não tá em 2 linhas no seu código, não, né? Se não é isso! Experimenta apagar esse comentário pra ver se some o erro.

Pra ele ordenar o resultado da consulta no mysql pelo campo "cliques", deve ser no SELECT, mesmo. Mas o seu parece estar certo... estranho! Experimenta fazer uns testes... do tipo:

$sql = "SELECT * FROM bibli_acervo ORDER BY cliques DESC LIMIT 0,8";

E vai vendo se muda alguma coisa...

Se continuar o erro, no seu próximo post aproveita pra colocar como está o código, beleza? wink.gif

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

Galera, eu dei uma limpada no código, ficou assim agora:

<?

$sql = "select * from biblio_acervo order by cliques desc limit 8";

$query = @mysql_query($sql);

if (!$query){

die ("Problemas ao executar o sql !!!");

} else {

while ($coluna = @mysql_fetch_array($query)){

$idlivro = $coluna["idlivro"];

$nome = $coluna["nome"];

$cliques = $coluna["cliques"];

if($cliques == '') {

echo "<table width=100%>";

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>0</b> visitas</td></tr>";

echo "</table>";

} else {

echo "<table width=100%>";

echo "<tr><td><img src=images/flecha.gif width=12 height=12>&nbsp;&nbsp;&nbsp;<a href='verlivro.php?codigo=$idlivro'>$nome</a></td><td align=right><b>$cliques</b> visitas</td></tr>";

echo "</table>";

}

}

}

?>

Mas mesmo assim não está listando corretamente!

http://www.cosmopolisemrede.com.br/utilitarios/biblioteca/

Realmente não tem explicação, não está dando nenhum erro nem nada!

Acho que não tem mais o que ser feito!

Bom deixa quieto, vou fazer mais alguns testes, se não listar direito esse negócio eu tiro essa listagem!

Mas obrigado de qualquer forma!

Paulo

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, cara... programação é um negócio complicado! Seu código não aparenta ter problema algum, mas não tá funcionando. Então vou te falar no que eu acredito... nos pequenos detalhes! Já fiquei horas tentando descobrir porque não tava funcionando uma função HEADER(), fuçando e tentando achar brechas em todo o meu código... e sabe o que era? Eu tava escrevendo assim:

header(" Location: index.php "); e era pra ser assim: header("Location: index.php");

Grande diferença, não? Pois é... mas na hora você passa o olho e pensa: "não é aí que tá o problema"... então, vou te falar como eu tenho feito as minhas páginas, pois é uma forma que (ainda) não tive problemas!

Como lhe disse, são só detalhes... e acredito que pode nem ser isso o problema. Mas eu teria escrito o seu código da seguinte forma: (vou por em vermelho o que eu mudei)

<?

$sql = "SELECT * FROM biblio_acervo ORDER BY cliques DESC LIMIT 0,8";

$query = @mysql_query($sql);

if (!$query) { // acrescentei um espaço antes da chave

die("Problemas ao executar o sql !!!"); // tirei um espaço depois do die()

} else {

while ($coluna = @mysql_fetch_array($query)) { // criei + um espaço aqui

$idlivro = $coluna["idlivro"];

$nome = $coluna["nome"];

$cliques = $coluna["cliques"];

if ($cliques == "") {

echo "<table width=\"100%\">";

echo "<tr><td><img src=\"images/flecha.gif\" width=\"12\" height=\"12\">&nbsp;&nbsp;&nbsp;<a href=\"verlivro.php?codigo=$idlivro\">$nome</a></td><td align=\"right\"><b>0</b> visitas</td></tr>";

echo "</table>";

} else {

echo "<table width=\"100%\">";

echo "<tr><td><img src=\"images/flecha.gif\" width=\"12\" height=\"12\">&nbsp;&nbsp;&nbsp;<a href=\"verlivro.php?codigo=$idlivro\">$nome</a></td><td align=right><b>$cliques</b> visitas</td></tr>";

echo "</table>";

}

}

}

?>

Eu tb acrescentei aspas duplas (") nos atributos da tabela que será impressa na página, e troquei todas as suas aspas simples (') por aspas duplas (").

Como eu lhe disse, essa é uma "receita de bolo" que eu uso e ainda não tive problemas. Mas ainda acho que o problema não está aí...

Bom, verifique tudo... até maiúsculas e minúsculas (principalmente!) nas variáveis, nomes do campo do banco de dados, etc..

Boa sorte! Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

PULTZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ!

GALERA, REALMENTE O CÓDIGO ESTAVA CORRETO!

CHEGOU UMA HORA QUE EU REVOLTEI E RESOLVI APAGAR TODOS OS LIVROS QUE ESTAVAM NO BANCO E COMECEI A INSERIR TUDO NOVAMENTE!

NA HORA QUE EU VOLTO NA PÁGINA INICIAL DO SISTEMA E COMEÇO A TESTAR O RANKING DE MAIS VISITADOS, FUNCIONOU CORRETAMENTE!

NÃO TEM EXPLICAÇÃO, MAIS ATÉ QUE ENFIM FUNCIONOU ESTE NEGÓCIO, AVE!!

VALEU PESSOAL PELA FORÇA, PARA TESTAR O NEGÓCIO ENTREM:

http://www.cosmopolisemrede.com.br/utilitarios/biblioteca/

BRIGADUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!

wink.gifbiggrin.giftongue.giflaugh.gifrolleyes.gifcool.gifsmile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bem que um amigo meu sempre diz:

"A informática deixou de ser uma ciência exata e passou a ser esotérica."

Da próxima vez, antes de você vir aqui no fórum, tenta jogar sal grosso em cima do seu micro, chama um pai de santo e faz uns trabalhos aí pra ver se ele coopera... hehehe

Falou! Boa sorte no seu site!

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,3k
    • Posts
      652,2k
×
×
  • Criar Novo...