Ae pessoal,
So novato ainda em mysql e php, mas to aprendendo aos poucos...
To com um probleminha. Tenho um sistema de busca assim:
Problema Com Pesquisa...
Started By _Samuca_, 28/07/2004, 17:00
6 replies to this topic
#1
Posted 28/07/2004, 17:00
PHP |
<?php if(!empty($HTTP_POST_VARS[palavra])) { $palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]); $qr = "SELECT * FROM programas WHERE programa LIKE '%".$palavra."%' ORDER BY programa"; $sql = mysql_query($qr); $total = mysql_num_rows($sql); if ($total >= 0 && $total < 1){ echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; echo '<tr>'; echo '<td class="normal">Não foi encontrado nenhum resultado.</td>'; echo '</tr>'; echo '</table>'; } elseif ($total >= 1 && $total < 2){ echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; echo '<tr>'; echo '<td class="normal">Foi encontrado <b>'.$total.'</b> programa.</td>'; echo '</tr>'; echo '</table>'; } else { echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; echo '<tr>'; echo '<td class="normal">Foram encontrados <b>'.$total.'</b> programas.</td>'; echo '</tr>'; echo '</table>'; } while($r = mysql_fetch_array($sql)) { $local = $r['local']; $tipo = $r['tipo']; $programa = $r['programa']; $serial = $r['serial']; $tamanho = $r['tamanho']; echo '<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">'; echo '<tr>'; echo '<td width="80" bgcolor="#E7E7E7"><div align="center">'.$tipo.'</div></td>'; echo '<td width="300" bgcolor="#E7E7E7"><div align="center">'.$programa.'</div></td>'; echo '<td width="80" bgcolor="#E7E7E7"><div align="center">'.$serial.'</div></td>'; echo '<td width="60" bgcolor="#E7E7E7"><div align="center">'.$tamanho.'</div></td>'; echo '</tr>'; echo '</table>'; } } ?> |
O código tah ae.... tipo, soh q eu preciso q ele procure na tabela "TIPO" tb... como eu faço?
PHP |
<?php $qr = "SELECT * FROM programas WHERE programa, tipo LIKE '%".$palavra."%' ORDER BY programa"; ?> |
Me falaram pa faze isso.... mas n funciono.... oq faço??
Mê deem uma luz ae... pls!
#2
Posted 28/07/2004, 17:03
Seria algo assim:
Isto serve se o seu campo TIPO também for String.
Se o seu campo TIPO for numerico, faça sem as aspas simples, assim:
Você pode realizar pesquisas na clausula WHERE usando AND e/ou OR, intercalando filtros afim de ter uma consulta mais refinada.
SELECT * FROM program<span style='color:green'>as WHERE programa LIKE '%".$palavra."%' AND tipo = '".$tipo."' ORDER BY programa
Isto serve se o seu campo TIPO também for String.
Se o seu campo TIPO for numerico, faça sem as aspas simples, assim:
SELECT * FROM program<span style='color:green'>as WHERE programa LIKE '%".$palavra."%' AND tipo = ".$tipo." ORDER BY programa
Você pode realizar pesquisas na clausula WHERE usando AND e/ou OR, intercalando filtros afim de ter uma consulta mais refinada.
------
Mero mortal!
Mero mortal!
#3
Posted 28/07/2004, 17:48
PROG
n deu bem como eu queria....
Olha soh. Esse sistema vai ser usado para pesquisa de programas... intaum a pessoa pode procura pelo "nome do programa" ow pelo "tipo", intaum oq eu quero eh isso:
n deu bem como eu queria....
Olha soh. Esse sistema vai ser usado para pesquisa de programas... intaum a pessoa pode procura pelo "nome do programa" ow pelo "tipo", intaum oq eu quero eh isso:
PHP |
<?php "SELECT * FROM cdr_programas WHERE programa LIKE '%".$palavra."%' ORDER BY programa"; ?> |
Soh q eu quero q ele procure em duas tabelas.... na "programa" e na "tipo"....
Intaum se a pessoa digita no form "need for speed underground" ele vai procura nas duas tabelas (programa, tipo)... e se ela digita no form "jogo" ele tb vai procura nas duas tabelas (programa, tipo)....
N sei se consegui explicar bem... ow t confundi + ainda AUIehiuaHieae.... mas tenta me da um help ae
#4
Posted 28/07/2004, 18:01
Vamos supor que suas tabelas fossem assim:
TIPO
cod_tipo int
descricao varchar(20)
PROGRAMA
cod_programa int
cod_tipo int
titulo varchar(30)
sistema varchar(10)
quant_cd int
$programa = "XP";
$tipo = 1,3,4
ps.: exemplo hipotetico, solução deve ser aplicada a sua realidade.
TIPO
cod_tipo int
descricao varchar(20)
PROGRAMA
cod_programa int
cod_tipo int
titulo varchar(30)
sistema varchar(10)
quant_cd int
$programa = "XP";
$tipo = 1,3,4
SELECT p.titulo, p.sistema, p.quant_cd, t.descricao FROM programa p, tipo t WHERE p.cod_tipo = t.cod_tipo AND p.titulo LIKE '%".$palavra."%' AND p.tipo in (".$tipo.") ORDER BY p.titulo
ps.: exemplo hipotetico, solução deve ser aplicada a sua realidade.
------
Mero mortal!
Mero mortal!
#5
Posted 29/07/2004, 11:50
Olha cara.... eh o seguinte....
Axo q eu to trocando as bola na hora de explica....
Eu apenas quero pesquisar a "palavra" digitada no form, em duas tabelas no mysql....
como se fosse assim:
tipo isso... mas preciso coloca isso em 1 comando soh.... saco?
Agradeço desde jah as suas ajudas
Axo q eu to trocando as bola na hora de explica....
Eu apenas quero pesquisar a "palavra" digitada no form, em duas tabelas no mysql....
como se fosse assim:
"SELECT * FROM program<span style='color:green'>as WHERE programa LIKE '%".$palavra."%' ORDER BY programa" "SELECT * FROM program<span style='color:green'>as WHERE tipo LIKE '%".$palavra."%' ORDER BY programa"
tipo isso... mas preciso coloca isso em 1 comando soh.... saco?
Agradeço desde jah as suas ajudas
#6
Posted 29/07/2004, 11:56
As tabelas se relacionam de alguma maneira?
Uma possivel solução para o que você quer:
Uma possivel solução para o que você quer:
$comando_sql = " SELECT CodPrograma, Programa, Tipo FROM program<span style='color:green'>as WHERE programa LIKE '%".$palavra."%' UNION ALL SELECT CodPrograma, Programa, Tipo FROM program<span style='color:green'>as WHERE tipo LIKE '%".$palavra."%' ORDER BY programa "
------
Mero mortal!
Mero mortal!
#7
Posted 29/07/2004, 12:43
Aeeeeeeeeeeeeeee.... finalmente!!!!!!
Graças a vc PROG deu certo
Eu mudei um poco o comando... mas enfim.... deu certo
Fiz assim...e agora deu
Brigadão dnovo PROG !!
Graças a vc PROG deu certo
Eu mudei um poco o comando... mas enfim.... deu certo
$qr = "SELECT * FROM program<span style='color:green'>as WHERE programa LIKE '%".$palavra."%' UNION ALL SELECT * FROM program<span style='color:green'>as WHERE tipo LIKE '%".$palavra."%' ORDER BY programa";
Fiz assim...e agora deu
Brigadão dnovo PROG !!
Edição feita por: _Samuca_, 29/07/2004, 12:44.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)