Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 10:28

Olá! Necessito fazer consulta numa tabela chamando campos mais de uma vez. Melhor explicando: numa tabela, há, entre outros, os campos ta1 (tipo_anuncio_id) e ca1 (categoria_id). Cada tipo_anuncio_id corresponde a uma categoria_id. Na consulta que desejo fazer, o valor do primeiro ta1 é 6, e o valor de ca1 virá através de $ca1 = $_GET['ca1'];, que corresponderá a 37. O valor do segundo ta1 é 9, e o valor do segundo ca1 é 38. Estou tentado fazer assim:

$q1 = "select * from $tab where ta1 = '6' and ca1 = '".$ca1."' and ta1 = '9' and ca1 = '38' and sto = '".$sto."' order by RAND()";


A $tab se refere à tabela, e a $sto se refere ao status do anúncio. Qual é a forma correta de fazer a consulta que pretendo? Grato.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

26-02-2012 10:59

Entendi mais ou menos. Se você quer listar dados, baseado em 2 colunas na mesma tabela, tem que fazer algo assim:

SELECT colunas FROM suatabela WHERE coluna1='isso' OR coluna2='aquilo'
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 11:03

Mas o OR não fará escolher entre um e outro? Eu quero listar todos os anúncios de ta1 = 6 e ca1 = 37 juntamente com todos os anúncios de ta1 = 9 e ca1 = 38.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

26-02-2012 11:07

Então usa o ||

...WHERE coluna1='...' || coluna2='...'
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 11:07

Acho que seria algo assim:

(SELECT * FROM people WHERE age=20 LIMIT 30) UNION (SELECT * FROM people WHERE age=10 LIMIT 20);

Está neste link: http://cobaia.net/2010/08/mysql-multipl ... ll-result/. Mas não estou conseguindo fazer.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 11:11

Mas || é OR. E && é AND. Se eu não estiver enganado. Se usar || não escolherá entre um ou outro valor?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

26-02-2012 11:14

Não, funciona com o ||, eu testei aqui. Com esse método vai retornar somente os registros que atende a condição definida.

E esse método que você mandou pelo link funciona sim. Testei também. Serve para fazer 2 ou mais consultas, limitando a quantidade de resultado de cada uma independentemente. Veja como usar esse método do link aqui Duas-consultas-na-mesma-query-de-forma- ... _6984.html
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 21:52

Não estou sabendo fazer a sintaxe. Com o seu exemplo, fiz assim:

$q1 = "select * from $tab where ta1 = '6' and ca1 = '".$ca1."' || ta1 = '9' and ca1 = '38' order by RAND()" or die( mysql_error() ); 

Dei echo, e exibe isto: select * from aba where ta1 = '6' and ca1 = '37' || ta1 = '9' and ca1 = '38' order by RAND(). Mas a consulta não é feita, pois é exibida a imagem referente a quando inexistir registro no bd.

Utilizando UNION, estou fazendo assim:

$q1 = "(SELECT ta1 = '6',ca1 = '".$ca1."' FROM $tab) UNION(SELECT ta1 = '9',ca1 = '38' FROM $tab) order by RAND()"; or die( mysql_error() ); 

Está dando o seguinte erro: "Parse error: parse error, unexpected T_LOGICAL_OR in c:(...)". Não sei se tenho de usar parêntesis ou não, e, se tiver de usá-los, onde devem ser inseridos. Continuo pesquisando, mas será que você pode me ajudar com a sintaxe da consulta? Grato.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

26-02-2012 22:18

Para execultar o comando você tem que usar o mysql_query()

$query=mysql_query("SELECT ..."); while($dados=mysql_fetch_array($query)) { extract($dados); echo "..."; } 

0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

26-02-2012 23:12

Vou tentar conforme seu último post. Mas o que você sugeriu acima deu certo. Havia registros incorretos no banco de dados, e imagens estavam em pastas erradas. Deu certo com isto:

$q1 = "select * from $tab where ta1 = '9' and ca1 = '".$ca1."' || ta1 = '10' and ca1 = '38' order by RAND()" or die( mysql_error() ); 

Não sei está totalmente correto, mas o código é de banner aleatório, e conforme cliques no código as imagens (para teste cadastrei apenas duas) estão se alternando.

Se não for impróprio eu perguntar aqui, não gostei do banner aleatório com cliques (se a pessoa não clica, ou clica pouco, será exibido apenas um banner, e o mesmo banner pode ser exibido seguidamente). Você sabe de algum código que exiba um banner por determinado tempo e depois outro, e assim sucessivamente? A exibição pode até ser aleatória, que se dá pelo by RAND(). Mas queria que a exibição se desse por determinado tempo, como, por exemplo, 10 segundos cada banner.

Obrigado pela força, mais uma vez.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

27-02-2012 08:26

Aqui no fórum eu postei um script que permite dar uma prioridade de um banner sobre o outro, tipo, se tem 3 banners no modo aleatório, um tem maior porcentagem de aparecer do que o outro. Só não lembro onde postei.

Mas dependendo de quantos banners você tem, você pode fazer um esquema baseado no tempo, tipo, se é do segundo 1 até o 10, mostra determinado banner, se do 11 até 20 outro, etc...
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

27-02-2012 10:06

Você pode dar uma ideia de como fica a consulta com o tempo para o banner, conforme sugeriu?

Quanto à consulta como estou tentando fazer, está dando certo conforme sua sugestão, mas entre as imagens existentes aparecem "vazios", conforme se vai clicando.

Estou fazendo a consulta assim:

$q1 = "select * from $tab where ta1 = '6' || ta1 = '9' || ta1 = '10' order by RAND()" or die( mysql_error() ); 

Para exibir os banners:

if($ca1 < '37' && $a1['ta1'] == '6') { $banner = "<img src=\"../../$dib/$a1[bgif]\" border=\"0\">"; echo $banner; echo "<br>"; } if($ca1 == '37' && $a1['ta1'] == '9') { $banner = "<img src=\"../../iab/37/$a1[bgif]\" border=\"0\">"; echo $banner; echo "<br>"; } if($ca1 <= '37' && $a1['ta1'] == '10') { $banner = "<img src=\"../../iab/38/$a1[bgif]\" border=\"0\">"; echo $banner; echo "<br>"; } 

As imagens estão sendo chamadas conforme os tipos de anúncios e categorias. Porém, como disse acima, entre as imagens que estão cadastradas aparecem "vazios", há momentos em que, entre as exibições das imagens, nenhuma imagem é exibida.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

27-02-2012 14:17

A idéia que dei seria basicamente assim:

<?php $s = date("s");     echo $s."<br />"; $banners = Array(1, 2, 3, 4, 5, 6); if($s <= 10) { echo $banners[0]; } elseif($s >= 11 && $s <= 20) { echo $banners[1]; } elseif($s >= 21 && $s <=30 ) { echo $banners[2];  } elseif($s >= 31 && $s <=40 ) { echo $banners[3];  } elseif($s >= 41 && $s <=50 ) { echo $banners[4];  } elseif($s >= 51 && $s <=60 ) { echo $banners[5];  } ?>

Nesse exemplo eu criei o array $banners, que no seu caso vão ser substituidos por figuras da sua consulta.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

27-02-2012 23:07

A consulta com ...WHERE coluna1='...' || coluna2='...' que você sugeriu está ok. Descobri o motivo dos vazios entre as imagens de banners existentes. Quanto ao seu exemplo com tempo de exibição do banner, vou testá-lo um pouco mais adiante, pois preciso fazer uns outros ajustes no código, e depois retorno para isso. Obrigado pela força.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

27-02-2012 23:07

Flw, t. Boa noite |-)
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

28-02-2012 00:12

Desculpe eu postar logo em cima. Mas, na verdade, aquela questão já se resolveu. Eu estava vendo esse código que você postou, do tempo para a exibição do banner. Como ela fica em face dos registros no bd? Esta linha $banners = Array(1, 2, 3, 4, 5, 6); se refere à existência de 6 banners? Se for, como fica referente aos registros do bd, se superarem o número que consta daquela linha?
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1079
Sexo: Masculino
Localização: Ourinhos, SP

select múltiplo

28-02-2012 00:15

Cara, você vai puxar minha orelha e dizer: esse cara é @#$%&!!! Desculpe por haver repetido o post. Não vi que tinha ido para outra página e pensei que não havia sido publicado. Exclua, por favor, um dos que estão repetidos e este. Um abraço.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

select múltiplo

28-02-2012 08:30

Esse exemplo que postei como é baseado nos segundos, você vai ter que usar um LIMIT em suas consultas, para não ultrapassar a quantidade de dados para o array.

Ai você vai ter que criar primeiramente o array antes do while

$banners = Array();

Alimentar o array com os valores da consulta

$banners[] = "caminho da sua figura";

Ai fora do array continua o código que postei, a parte dos ifs para exibir o que foi alimentado dentro do while.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado