rfamelli 0 Denunciar post Postado Março 9, 2012 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 Rê Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Março 9, 2012 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
Silvio Oliveira 0 Denunciar post Postado Março 9, 2012 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
rfamelli 0 Denunciar post Postado Março 12, 2012 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
rfps888 7 Denunciar post Postado Março 12, 2012 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
rfamelli 0 Denunciar post Postado Março 12, 2012 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
rfps888 7 Denunciar post Postado Março 12, 2012 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
rfamelli 0 Denunciar post Postado Março 12, 2012 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