0

Consultar por post e status

criado por niel100juizo em 10/06/2010 6:15pm
è o seguinte pessoal

minha pagina tem um form com um text field chamado "pesquisa" e um botão "pesquisar"

eu queria que qdo entrasse nessa pagina fosse exibidos todos

os produtos com status = on porem eu usei um post para puxar o que estiver escrito no text field

então não exibe nada - só qdo clica em pesquisar

outro detalhe qdo eu clico em pesquisar com text field em branco

exibe todos os produtos de status on e status off

era só para exibir os status on

olha meu recordset

SELECT *
FROM prod_veic
WHERE pv_tit LIKE %colname% OR pv_desc LIKE %colname% OR pv_valor LIKE %colname% AND pv_status = 'on'
ORDER BY pv_tit ASC


colname = $_POST['pesquisa']

o que eu precisa e qdo alguem acesse a pagina exibisse todos os produtos on

e qdo alguem vc digitar no text field exibisse só os produtos on

do jeito que está a pagina abre sem nenhum resultado

e qdo pesquisa exibe tudo tanto produtos on como produtos off

vlw pessoal

Lista de Respostas:

0
10/06/2010 6:26pm
(~14 anos atrás)
Matheus Ricelly respondeu:
amigo,

Para exibir os produtos inicialmente só exibindo com status on, vc teria que fazer um select apenas listando esses itens... não precisa integrar com o text field.

Mais para exibir através do campo de pesquisa, seria interessante usar o select da seguinte forma:

SELECT * FROM tabea WHERE campo LIKE '%".$_POST['campo']."%' AND pv_status = 'on' ORDER BY campo ASC

ou vc pode pegar logo a variável $campo = $_POST['campo'] e depois usar no select:

SELECT * FROM tabea WHERE campo LIKE '%".$campo."%' AND pv_status = 'on' ORDER BY campo ASC

Você pode acrescentar as coisas, vai de acordo com o seu gosto, mas, sempre lembre de colocar a variável corretamente, pois,como você colocou (colname = $_POST['pesquisa']), está incorreto, esqueceu de colocar o $.

Valeu!

0
10/06/2010 11:08pm
(~14 anos atrás)
niel100juizo respondeu:
Matheus tentei assim

SELECT *
FROM prod_dest
WHERE prod_dest.pd_tit LIKE '%".$_POST['campo']."%' AND prod_dest.pd_status = 'on'
ORDER BY prod_dest.pd_tit ASC

dá esse erro

vc tem um erro de sintaxe no seu SQL próximo a 'campo']."%'AND prod_dest.pd_status = 'on' ORDER BY prod_dest.pd_tit ASC' na linha 1

Matheus eu qdo faço esse recordset

eu faço direto pelo Dreamweaver em Server Behaviors - recordset

aquele colname sem $ foi gerado pelo proprio dreamweaver

funciona

porem está acontecendo o erro que é para exibir somente produtos status on e está exibindo tanto on como off

se eu fazer sem post funciona exibe só produtos on

só que preciso que o campo post funcione tbm

vlw

0
11/06/2010 9:01am
(~14 anos atrás)
Matheus Ricelly respondeu:
então crie logo a variável

$campo = $_POST['campo'] e depois vc joga dentro do SELECT:

SELECT * FROM prod_dest WHERE prod_dest.pd_tit LIKE '%".$campo."%' AND prod_dest.pd_status = 'on' ORDER BY prod_dest.pd_tit ASC

Acredito que tenha sido problemas com a concateação, que gerou esse erro, pois isso, faça assim, talvez terá menor dificuldades...

Valeu!

0
11/06/2010 6:59pm
(~14 anos atrás)
niel100juizo respondeu:
Então Matheus desse jeito que vc me passou na hora de criar o recordeset não deu erro, porem qdo vou abrir a pagina da erro

mas dai consegui assim

SELECT *
FROM prod_dest
WHERE pd_tit LIKE %colname% AND pd_status = 'off' OR pd_desc LIKE %colname% AND pd_status = 'off' OR pd_valor LIKE %colname% AND pd_status = 'off'
ORDER BY pd_tit ASC

colname (sem $) = $_POST['pesquisa']

funcionou porem qdo a pagina é aberta aparece sem resultado nenhum
digita no campo pesquisa ai exibe o resultado

não sei se está correto mas fiz assim

dois recordeset um é esse acima e um outro assim

SELECT *
FROM prod_dest
WHERE pd_status = 'off'
ORDER BY pd_tit ASC

só que dai exibia esse acima, mas qdo pesquisar vai exibir os dois

ai eu fiz assim

<?php
if(isset($_POST['pesquisa'])){
?>

exibe o primeiro que te falei

<?php
}else{
?>

exibe esse segundo

<?php
}
?>
caso vc queria ver meu codigo inteiro

http://pastebin.com/bTLUyZbL

funcionou, não sei se é a melhor forma de fazer isso

não sei se dava para fazer tudo isso num recordset só

-----------------------
Aproveitando o topico

como eu faria para fazer um sistema de pesquisar por menor preço e maior preço

eu fiz assim

SELECT *
FROM prod_dest
WHERE pd_valor LIKE %colname%
ORDER BY pd_valor ASC

colname = $_POST['valor']

exibe porem não exibe do menor para o maior preço

o que será qie esta errado

um detalhe no banco de dados

o campo valor eu deixei como varchar

vlw

0
14/06/2010 7:57pm
(~14 anos atrás)
Webster Moitinho respondeu:
Niel, o formato do campo valor deveria ser decimal né?

0
15/06/2010 11:16am
(~14 anos atrás)
niel100juizo respondeu:
eu mudei agora para float 9,2

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)