Ir para conteúdo

Arquivado

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

rfamelli

[Resolvido] Rand

Recommended Posts

Oi pessoal,

 

eu tenho uma página que traz um produto em destaque (id_prod)

 

e nesta mesma página deve aparecer 3(tres) pequenas fotinhas com produtos da mesma categoria numa Área chamada Produtos similares. ok?

 

 

Dai fiz assim:

SELECT * FROM produto WHERE subcat='$id_subcat' ORDER BY RAND() LIMIT 3

 

Apareceu direitinho 3 pequenas fotos dos produtos similares,

 

porém, ele traz o proprio produto em destaque nas fotinhas lá embaixo, o que não pode ocorrer.

 

Então tentei,

 

SELECT * FROM produto WHERE $id_subcat='$id_subcat' AND id_prod > '$id_prod' ORDER BY RAND() LIMIT 4

 

Quando tem mais de 5 produtos nesta categoria as tres fotos aparecem,

Mas quando tem 2 produtos na categoria, ou 3 por exemplo, simplesmente nada aparece nos produtos similares...

 

O que acontece, como eu deveria fazer esta query?

 

Bom, espero que eu tenha conseguido me explicar.

 

Agradeço desde já pela ajuda.

 

bjs

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM produto WHERE $id_subcat='$id_subcat' AND id_prod != '$id_prod' ORDER BY RAND() LIMIT 4

 

pronto isso deve resolver.

 

!= (Difrente)

 

leia isso que vai te ajudar entender um pouco mais sobre a sintaxe, operadores lógicos etc..

http://www.criarweb.com/artigos/criterios-selecao-sql.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola rfamelli,

 

Bem não sou muito avançado em php e sql mais você não deveria colocar o seu código da seguinte forma

 

SELECT * FROM produto WHERE $id_subcat='$id_subcat' AND id_prod > '$id_prod' ORDER BY RAND() LIMIT =< 4

 

assim ele só mostraria até o limite de 4 imagens e nada mais.

 

não sei se vai dar certo mais não custa nada tentar, certo!

 

Fica ai um forte abraço.

 

para quem gosta de trocar ideias.

 

Skype: silviocgpoliveira

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM produto WHERE $id_subcat='$id_subcat' AND id_prod != '$id_prod' ORDER BY RAND() LIMIT 4

 

pronto isso deve resolver.

 

!= (Difrente)

 

leia isso que vai te ajudar entender um pouco mais sobre a sintaxe, operadores lógicos etc..

http://www.criarweb.com/artigos/criterios-selecao-sql.html

 

Muito obrigada pelas respostas.

testei desta forma, mas o resultado foi o mesmo...

 

o produto em destaque não aparece como deveria ser, mas:

 

Quando a categoria tem mais de 4, os tres produtos correspondentes aparecem.

Se a categoria tem menos de 4, ao invés de aparecer 3 produtos, aparecem só 2.

E se a categoria tem só 2 , não aparece nenhum produto.

 

Não é estranho??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estará fazendo alguma coisa errada quando faz pega os valores que vêm da base de dados? Esperimentou colocar o sql directamente no mysql, ou phpmyadmin...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estará fazendo alguma coisa errada quando faz pega os valores que vêm da base de dados? Esperimentou colocar o sql directamente no mysql, ou phpmyadmin...?

 

 

Amigo, tinhas razão,

 

eu estava colocando um

 

<?php if ($id_prod) {

echo "Produtos Similares"; } ?>

 

e isso estava impactando na busca,

agora vou ter que arrumar solução para esta questao acima, quando não tiver nenhum produto para aparecer o titulo Produtos similares tbm deve sumir

 

Alguma sugestão para mim quanto a isso?

 

E obrigada, por enquanto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode verificar o retorno do mysql com mysql_num_rows() que retorna o numero de linhas do resultado ou 0 se não tiver. Como está feito o seu codigo que mostra esses produtos? Voce escreve o titulo e depois faz a query?

Uma forma de fazer seria:

$result = mysql_query(...);
if (mysql_num_rows($result)>0){
 echo 'titulo';
 while ( $row = mysql_fetch_array($result) ){
   //imprime os produtos
 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode verificar o retorno do mysql com mysql_num_rows() que retorna o numero de linhas do resultado ou 0 se não tiver. Como está feito o seu codigo que mostra esses produtos? Voce escreve o titulo e depois faz a query?

Uma forma de fazer seria:

$result = mysql_query(...);
if (mysql_num_rows($result)>0){
 echo 'titulo';
 while ( $row = mysql_fetch_array($result) ){
   //imprime os produtos
 }
}

 

PERFEITO.

MUITO OBRIGADA

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.