Ir para conteúdo

POWERED BY:

Arquivado

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

Williams Duarte

Mostrar Foto de acordo com a autorização!

Recommended Posts

Galera é o seguinte estou com um pequeno problema, tenho um código que mostra fotos em modo aleatório, usando duas tabelas,

 

Tenho uma tabela onde eu cadastro os clientes e uma outra onde eu cadastro de produtos deste cliente

 

para voces entenderem o que eu quero relacionar uma tabela com a outra, de modo quando eu colocar 'N' no campo mostrar_produtos da tabela clientes, o select compara com a de produtos que ta 'S' não mostre,

 

fiz um código não dá erro mostra o produto porem o mesmo printa 8 vezes iguais

 

alguem poderia me ajudar...

 

fiz o codigo abaixo

 

$sql = mysql_query("SELECT * FROM (cadastro_clientes INNER JOIN produtos_lojas ON cadastro_clientes.mostrar_produto = produtos_lojas.mostrar_produto) WHERE  
destaque ='1' ORDER BY RAND() LIMIT 0,12 ");
	 $query = ($sql) or die (mysql_error());
	 echo "<table width='100%' heigth='400px' border='0' cellspacing='8' cellpadding='8'>";
	 $conta_coluna = 1;
	 while ($aux = mysql_fetch_array($sql)) {

aos mais experientes ajuda pelo amor de Deus, é que preciso disso

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, ficou meio confuso... talvez o problemas esteja no ORDER BY RAND() LIMIT 0,12. Essa instrução sql, vai capturar os registros da linha 0 e vai avançar seu cursor 12 linhas, e que resultará na captura das linhas 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 por exemplo. Certo?

 

Qual a quantidade de registros que deseja exibir?

 

 

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, ficou meio confuso... talvez o problemas esteja no ORDER BY RAND() LIMIT 0,12. Essa instrução sql, vai capturar os registros da linha 0 e vai avançar seu cursor 12 linhas, e que resultará na captura das linhas 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 por exemplo. Certo?

Errado.

 

Isso vai pegar 12 registros aleatórios, por ser aleatório não tem diferença em ser "LIMIT 0, 12" ou "LIMIT 12"..

 

Explica melhor Wduarte, acho que seu problema é simples...

 

Talvez o que você procura seja isso:

$sql = mysql_query("SELECT * FROM (cadastro_clientes INNER JOIN produtos_lojas ON cadastro_clientes.mostrar_produto = produtos_lojas.mostrar_produto) WHERE destaque = '1' AND cadastro_clientes.mostrar_produto = 'S' ORDER BY RAND() LIMIT 12 ");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explica melhor wduarte... O problema é que tá printando 8x?

 

Isso amigo este é o prblema

 

 

Explica melhor Wduarte, acho que seu problema é simples...

 

Talvez o que você procura seja isso:

$sql = mysql_query("SELECT * FROM (cadastro_clientes INNER JOIN produtos_lojas ON cadastro_clientes.mostrar_produto = produtos_lojas.mostrar_produto) WHERE destaque = '1' AND cadastro_clientes.mostrar_produto = 'S' ORDER BY RAND() LIMIT 12 ");

 

amigo troquei o código mais continua aparecendo a mesma imagens oito vezes de uma olhada

 

Imagem Postada

 

 

O certo seria assim

Imagem Postada

 

 

E explicando melhor eu gostaria que quando eu coloca-se no campo mostrar_produto = N que está em enum na tabela de clientes,

 

congelaria todos os produtos deste cliente se não vou ter que fazer isso pelo bd de produtos, agora já pensou se o mesmo tiver 10.000 produtos to morto. :blink:

 

um simples N na tabela clientes broqueava tudo http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

Vamos juntos consiguiremos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

é que ja tou :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi bem você quer:

 

1 fazer uma pesquisa numa tabela PRODUTOS

 

2 recuperando os dados voce quer refinar a pesquisa com outro dado, no caso mostrar_produto S ou N.

 

 

Entao use sub select

 

SELECT * `PRODUTOS` WHERE ( SELECT * CADASTRO_CLIENTES WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi bem você quer:

 

1 fazer uma pesquisa numa tabela PRODUTOS

 

2 recuperando os dados voce quer refinar a pesquisa com outro dado, no caso mostrar_produto S ou N.

 

 

Entao use sub select

 

SELECT * `PRODUTOS` WHERE ( SELECT * CADASTRO_CLIENTES WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12

 

Bom dia supertelnet!

 

fiz o que voce pediu, e alterei para os dados do banco

 

$sql = mysql_query("SELECT * `produtos_lojas` WHERE ( SELECT * cadastro_clientes WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12");

mas apareceu este erro agora veja:

 

Você tem um erro de sintaxe no seu SQL próximo a '`produtos_lojas` WHERE ( SELECT * cadastro_clientes WHERE `mostrar_produto`='N')' na linha 1

 

o que deu errado, qualquer coisa é só pedir http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM `produtos_lojas` ....

Pois eu tinha visto e achei que era isso e ja tinha tentando,

$sql = mysql_query("SELECT * FROM `produtos_lojas` WHERE ( SELECT * cadastro_clientes WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12");

 

 

mas também tinha me mostrado este erro

 

Você tem um erro de sintaxe no seu SQL próximo a 'cadastro_clientes WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12' na linha 1

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM `produtos_lojas` ....

Pois eu tinha visto e achei que era isso e ja tinha tentando,

$sql = mysql_query("SELECT * FROM `produtos_lojas` WHERE ( SELECT * cadastro_clientes WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12");

 

 

mas também tinha me mostrado este erro

 

Você tem um erro de sintaxe no seu SQL próximo a 'cadastro_clientes WHERE `mostrar_produto`='N') ORDER BY RAND() LIMIT 12' na linha 1

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

ETA, REZA AI QUE AJUDA IRMAO!

 

$sql = mysql_query("SELECT * FROM `produtos_lojas` WHERE ( SELECT * `cadastro_clientes` WHERE `cadastro_clientes`.`mostrar_produto`='N') ORDER BY RAND() LIMIT 12");

nESE EXEMPLO QUE EU TE PASSEI , VAMOS TER UM PESQUISA RETORNANDO OS DADOS COM mostrar_produto`='N'.

 

EU N TO VENDO NDA DE ERRADO NO SINTAXE NAO UE, APESAR Q EU TO SEM DORMIR A DOIS DIAS... HEHE.,, MAS APERENTEMENTE NAO TEM, MAS VERIFICA SE O OME DAS COLUNAS ESTAO CERTAS E TB O NOME DA TABELA

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.