Jump to content


Photo

Problema Com Pesquisa...


  • Faça o login para participar
6 replies to this topic

#1 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

Posted 28/07/2004, 17:00

Ae pessoal,

So novato ainda em mysql e php, mas to aprendendo aos poucos...

To com um probleminha. Tenho um sistema de busca assim:
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!
--
Samuel Machado
www.samuelmachado.com

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 28/07/2004, 17:03

Seria algo assim:

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!

#3 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

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:
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 ;)
--
Samuel Machado
www.samuelmachado.com

#4 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

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

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!

#5 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

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:
"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 ;)
--
Samuel Machado
www.samuelmachado.com

#6 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 29/07/2004, 11:56

As tabelas se relacionam de alguma maneira?

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!

#7 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

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 ;)

$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 :D



Brigadão dnovo PROG !!

Edição feita por: _Samuca_, 29/07/2004, 12:44.

--
Samuel Machado
www.samuelmachado.com




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq