Ir para conteúdo

POWERED BY:

Arquivado

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

adrianno

[Resolvido] Como colocar varios WHERE em 1 unica consulta MYSQL

Recommended Posts

Ola gente, estou começando em PHP, e estou montando uma lista comercial , com as categorias e as lojas/comercios

 

eu tenho uma pagina com ordenação alphabetica, A - B - C etc, ao clicar lista apenas os dados com A, B etc...

para tanto eu usei a consulta

select from lojas WHERE loja_nome = $_GET[letra] //  e nas letras  os links letra=A  etc

mais eu precisava que alem disso, os dados fossem mostrados os dados referentes a uma categoria especifica

mostralista.php?letra=A&cate_id=8

 

select from lojas WHERE loja_nome = $_GET[letra] AND cate_id=$_GET[cate_id] 

mais da erro de sintax SQL ao executar a pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM `lojas` WHERE `loja_nome` = '{$_GET['letra']}' AND `cate_id` = $_GET['cate_id']
qual erro deu?

cate_id é um INTEIRO, certo ?

 

Agora, estranho

WHERE loja_nome = $_GET[letra]
funcionar.. pois você tá comparando se é igual.. só deveria trazer as lojas que tiverem apenas oque você digitar.. para trazer as que começam com certa letra, você teria que usar um LIKE

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo desculpe, eu confundia o codigo ai, o comando das letras é relamente LIKE $_GET[letra] // eu passo na url o parametro A%, B% etc na variavel letra

 

mais depois de usar o like, nao consigo passar o parametro WHERE cate_id=

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo desculpe, eu confundia o codigo ai, o comando das letras é relamente LIKE $_GET[letra] // eu passo na url o parametro A%, B% etc na variavel letra

 

mais depois de usar o like, nao consigo passar o parametro WHERE cate_id=

 

Se em alguma parte da sua query já tem o like, sinal de que você já chamou a clausula Where. Se tem Where o próximo deve ser AND.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não?

mostre como você fez. E se deu erro, diga qual.

$sql = "SELECT * FROM `lojas` WHERE `loja_nome` LIKE '{$_GET['letra']}%' AND `cate_id` = {$_GET['cate_id']} ";
echo $sql;

e ai fica:

index.php?letra=b&cate_id=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao.

você passa no parametro a letra.

No Where que você poe o %

 

?letra=a

 

$a = $_GET['letra'];
$sql = "select * from where loja_nome link '$a%'";
.
.
.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é verdade, eu ja tinha ate tentado

 

$letra= $_GET['letra']."%";

mais realmente colocando o % na consulta funcionou melhor, assim se nao ouver valor =$letra na URL, ele vai usar apenas o % e assim listar tudo sem filtar letra, valeu galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi, você quer usar o Where depois de ter chamado o LIKE. Isso não dá pra fazer não pois o Like é uma condição e esta condição vem depois do WHERE, do AND ou do OR.

Mas o WHERE é a primeira condição a ser usada e é usada uma unica vez, a não ser que dentro da sua query tenha uma subquery. O que já é outra história.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem problema nenhum.

Importante é que resolveu. :lol:

 

Mais fácil, se na próxima vez, você informar qual o erro..

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.