Jump to content


Photo

Sistema De Busca


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

#1 amauritoscano

amauritoscano

    Turista

  • Usuários
  • 34 posts
  • Sexo:Não informado

Posted 02/04/2005, 12:50

galera, até agora eu ainda não consegui fazer funcionar o sisteminha de busca que eu fiz baseado no tutorial do Henrique_Cba (Iniciando no mySQL, inserir,exclui,editar...)

vou explicar exatamente o que eu quero nesse script e vou colocar os que eu ja tentei com as ajudas do Henrique, The bLk, hostdesigner, X-PHP e Balada.

quero agradecer todo mundo que tentou me ajudar, esse forum eh show de bola: Henrique, The bLk, hostdesigner, X-PHP e Balada.

fiz uma lista de cadastro de colegas, por exemplo:

tenho meus amigos na escola, no trabalho e na minha rua, gostaria de juntar todos eles e os amigos deles tbm, fazendo uma galera grande de amigos... eu queria fazer um sistema de busca, pois no tuto só tem inserir, exclui e editar. ja tentei varios tutoriais e nao achei nada que eu conseguisse fazer o que eu quero.

criei um banco de dados assim:
CREATE TABLE `cadastro` (
`id` INT( 6 ) UNSIGNED NOT NULL ,
`tipo` VARCHAR( 20 ) NOT NULL ,
`cabelo` VARCHAR( 20 ) NOT NULL ,
`pele` VARCHAR( 20 ) NOT NULL ,
`olho` VARCHAR( 20 ) NOT NULL ,
`finalidade` VARCHAR( 20 ) NOT NULL ,
`nome` VARCHAR( 20 ) NOT NULL ,
`idade` VARCHAR( 10 ) NOT NULL ,
`caracteristica` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);

no meu formulario para inserir um novo cadastro, tem uns selects onde por exemplo na hora de colocar o tipo de cabelo a pessoa escolhe entre loiro, castanho, ruivo, etc... na verdade, a maioria desse formulario é de select, tipo, cabelo, pele, olho, finalidade. deixando apenas o id, nome, idade e caracteristica como caixa de texto.
ate ai tudo bem, esta funcionando direitinho, eu consigo inserir, exclui e editar normalmente.

agora eu to querendo fazer as paginas buscar.php e pesquisar.php onde a pessoa faz uma determinada busca nesse cadastro, por exemplo, eu quero selecionar apenas pessoas solteiras e cabelo loiro, vou nos selects, seleciono e dou um buscar, dai vai me listar todo mundo que tem cabelo loiro e solteiro mostrando o resto do cadastro, exemplo:
_____________________________________________________________
Código do Colega: 111111
Situação Tipo: Solteiro
Características: bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla.
Cabelo: Loiro
Finalidade: Amizade
Pele: Clara
Olhos: Castanhos
Nome: Vanessa
Idade: 20
_____________________________________________________________
Código do Colega: 222222
Situação Tipo: Solteiro
Características: bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla.
Cabelo: Loiro
Finalidade: Namoro
Pele: Clara
Olhos: Verdes
Nome: Amauri
Idade: 17
_____________________________________________________________


pesquisar.php

<form name="busca" action="buscar.php">
<p><font size="2" face="Arial"><strong>Buscar Colega:</strong></font></p>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="284" id="AutoNumber1">
<tr> 
<td width="284"> <font size="1" face="Verdana, Arial, Helvetica, sans serif"><strong>Código do Colega<br>
<input name="id" type="text" class="caixa" id="id" style="width=130" size="5">
</strong></font></td>
<td width="284" colspan="2"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Situação Tipo<br>
        <select  name="tipo" class="caixa" style="width=130">
          <option value="">--</option>
          <option value="Casado">Casado</option>
          <option value="Solteiro">Solteiro</option>
          <option value="Viuvo">Viuvo</option>
          <option value="Divorciado">Divorciado</option>
          <option value="Namorando">Namorando</option>
          <option value="Noivo">Noivo</option>
          <option value="Amigado">Amigado</option>
          <option value="Separado">Separado</option>
          <option value="Enrolado">Enrolado</option>
          <option value="Nenhum">Nenhum</option>
        </select>
        </strong></font></td>
    </tr>
    <tr> 
<td width="284"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Cabelo<br>
        <select  name="cabelo" class="caixa">
          <option value="">--</option>
          <option value="loiro">loiro</option>
          <option value="Castanho Escuro">Castanho Escuro</option>
          <option value="Castanho Claro">Castanho Claro</option>
          <option value="Preto">Preto</option>
          <option value="Ruivo">Ruivo</option>
          <option value="Outro">Outro</option>
        </select>
        </strong></font></td>
      <td width="284" colspan="2"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Finalidade<br>
        <select  name="finalidade" class="caixa" style="width=130">
          <option value="">--</option>
          <option value="Amizade">Amizade</option>
          <option value="Namoro">Namoro</option>
          <option value="Ficar">Ficar</option>
          <option value="Outro">Outro</option>
        </select>
        </strong></font></td>
    </tr>
    <tr> 
      <td width="284"> <strong><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Pele<br>
        <select  name="pele" class="caixa">
          <option value="">--</option>
          <option value="Clara">Clara</option>
          <option value="Morena">Morena</option>
          <option value="Negra">Negra</option>
          <option value="Outra">Outra</option>
        </select>
        </font></strong></td>
      <td width="284" colspan="2"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Olhos<br>
        <select  name="olho" class="caixa">
          <option value="">--</option>
          <option value="Verdes">Verdes</option>
          <option value="Azuis">Azuis</option>
          <option value="Mel">Mel</option>
          <option value="Castanhos">Castanhos</option>
          <option value="Pretos">Pretos</option>
          <option value="Outros">Outros</option>
        </select>
        </strong></font></td>
    </tr>
    <tr> 
      <td width="284"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nome:</strong></font><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
        <input name="nome" type="text" class="caixa" id="nome" style="width=130" size="5">
        </font></strong></td>
      <td width="284" colspan="2"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Idade:<br>
        <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
        <input name="idade" type="text" class="caixa" id="idade" style="width=130" size="5">
        </font> </strong></font></td>
    </tr>
    <tr> 
      <td width="284">&nbsp;</td>
      <td width="284" colspan="2">&nbsp;</td>
    </tr>
    <tr> 
      <td width="284" colspan="3"> <p align="center"> 
          <input type="submit" name="submit" value="buscar">
      </td>
    </tr>
  </table>
</form>

buscar.php 1ª tentativa:
ele faz a busca e acha o registro mais somente se eu selecionar todos os campos e se todos esses campos coferir com o registro no bd, se eu deixar de colocar cabelo por exemplo ele fala q achou 0 registros...

<?
include"config.php";

$sql = mysql_query("SELECT * FROM cadastro WHERE id='$id' AND tipo='$tipo' AND cabelo='$cabelo' AND pele='$pele' AND olho='$olho' AND finalidade='$finalidade' AND nome='$nome' AND idade='$idade'") or die(mysql_error());
$linhas = mysql_num_rows($sql);
echo "Foram encontrados <b>$linhas</b> registros para sua busca:<br><br>";
if (!$sql){
echo "Nenhum registro foi encontrado";
}
else{
while ($reg = mysql_fetch_array($sql)){
$id = $reg['id'];
$tipo = $reg['tipo'];
$cabelo = $reg['cabelo'];
$pele = $reg['pele'];
$olho = $reg['olho'];
$finalidade = $reg['finalidade'];
$nome = $reg['nome'];
$idade = $reg['idade'];
$caracteristica = $reg['caracteristica'];
echo "$id $tipo $cabelo $pele $olho $finalidade $nome $idade $caracteristica<br>";
}
}
?> 

buscar.php 2ª tentativa:
busca somente pelo id, se eu selecionar outros campo aparece pagina em branco...

<?
include"config.php";

$db_cad="SELECT * FROM cadastro WHERE id='$id'";
if($tipo){ $db_cad.=" AND tipo='$tipo'"; exit;}
if($cabelo){ $db_cad.=" AND cabelo='$cabelo'"; exit;}
if($pele){ $db_cad.=" AND pele='$pele'"; exit;}
if($olho){ $db_cad.=" AND olho='$olho'"; exit;}
if($finalidade){ $db_cad.=" AND finalidade='$finalidade'"; exit;}
if($nome){ $db_cad.=" AND nome='$nome'"; exit;}
if($idade){ $db_cad.=" AND idade='$idade'"; exit;}
$sql = mysql_query("$db_cad") or die(mysql_error());
$linhas = mysql_num_rows($sql);
echo "Foram encontrados <b>$linhas</b> registros para sua busca:<br><br>";
if (!$sql){
echo "Nenhum registro foi encontrado";
}
else{
while ($reg = mysql_fetch_array($sql)){
$id = $reg['id'];
$tipo = $reg['tipo'];
$cabelo = $reg['cabelo'];
$pele = $reg['pele'];
$olho = $reg['olho'];
$finalidade = $reg['finalidade'];
$nome = $reg['nome'];
$idade = $reg['idade'];
$caracteristica = $reg['caracteristica'];
echo "$id $tipo $cabelo $pele $olho $finalidade $nome $idade $caracteristica<br>";
}
}
?>

buscar.php 3ª tentativa:
deu erro!

Parse error: parse error, unexpected T_IF in /home/restricted/home/public_html/buscar.php on line 6

<?
include"config.php";

$query   = "SELECT * FROM cadastro";
$prefixo = " WHERE"
if( isset($id) ) {
$query .= $prefixo . " id='$id'";
$prefixo = " AND";
}

if( isset($tipo) ) {
$query .= $prefixo . " tipo='$tipo'";
$prefixo = " AND";
}

if( isset($cabelo) ) {
$query .= $prefixo . " cabelo='$cabelo'";
$prefixo = " AND";
}

if( isset($pele) ) {
$query .= $prefixo . " pele='$pele'";
$prefixo = " AND";
}

if( isset($olho) ) {
$query .= $prefixo . " olho='$olho'";
$prefixo = " AND";
}

if( isset($finalidade) ) {
$query .= $prefixo . " finalidade='$finalidade'";
$prefixo = " AND";
}

if( isset($nome) ) {
$query .= $prefixo . " nome='$nome'";
$prefixo = " AND";
}

if( isset($idade) ) {
$query .= $prefixo . " idade='$idade'";
}

$sql = mysql_query($query) or die(mysql_error());
$linhas = mysql_num_rows($sql)
if( $linhas > 0 ) {
echo "Foram encontrados <b>$linhas</b> registros para sua busca:<br><br>";
} else {
echo "Nenhum registro foi encontrado";
}
while ($reg = mysql_fetch_array($sql)){
$id = $reg['id'];
$tipo = $reg['tipo'];
$cabelo = $reg['cabelo'];
$pele = $reg['pele'];
$olho = $reg['olho'];
$finalidade = $reg['finalidade'];
$nome = $reg['nome'];
$idade = $reg['idade'];
$caracteristica = $reg['caracteristica'];
echo "$id $tipo $cabelo $pele $olho $finalidade $nome $idade $caracteristica<br>";
}
?>
ja tentei outros tbm, mais deu muito erro e nem vou postar!
se tiver alguem que saiba me ajudar, eu ficarei muito grato. (y)
desde ja eu agradeco a todos! :D
e desculpa pelo livro que escrevi... ehehehehe :huh:

#2 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 02/04/2005, 13:01

na tentativa 3, coloque na sexta linha isso:

$prefixo = " WHERE";

(faltou o ; , por isso da erro de sintax)

#3 amauritoscano

amauritoscano

    Turista

  • Usuários
  • 34 posts
  • Sexo:Não informado

Posted 02/04/2005, 14:50

na tentativa 3, coloque na sexta linha isso:

$prefixo = " WHERE";

(faltou o ; , por isso da erro de sintax)

:( deu outro erro agora:

Parse error: parse error, unexpected T_IF in /home/restricted/home/public_html/buscar.php on line 47

(y) obrigado pela ajuda

#4 Hawk

Hawk

    Turista

  • Usuários
  • 27 posts
  • Sexo:Não informado

Posted 04/04/2005, 14:41

na tentativa 3, coloque na sexta linha isso:

$prefixo = " WHERE";

(faltou o ; , por isso da erro de sintax)

:( deu outro erro agora:

Parse error: parse error, unexpected T_IF in /home/restricted/home/public_html/buscar.php on line 47

(y) obrigado pela ajuda

<?
include"config.php";

$query   = "SELECT * FROM cadastro";
$prefixo = " WHERE";
if( isset($id) ) {
$query .= $prefixo . " id='$id'";
$prefixo = " AND";
}

if( isset($tipo) ) {
$query .= $prefixo . " tipo='$tipo'";
$prefixo = " AND";
}

if( isset($cabelo) ) {
$query .= $prefixo . " cabelo='$cabelo'";
$prefixo = " AND";
}

if( isset($pele) ) {
$query .= $prefixo . " pele='$pele'";
$prefixo = " AND";
}

if( isset($olho) ) {
$query .= $prefixo . " olho='$olho'";
$prefixo = " AND";
}

if( isset($finalidade) ) {
$query .= $prefixo . " finalidade='$finalidade'";
$prefixo = " AND";
}

if( isset($nome) ) {
$query .= $prefixo . " nome='$nome'";
$prefixo = " AND";
}

if( isset($idade) ) {
$query .= $prefixo . " idade='$idade'";
}

$sql = mysql_query($query) or die(mysql_error());
$linhas = mysql_num_rows($sql);
if( $linhas > 0 ) {
echo "Foram encontrados <b>$linhas</b> registros para sua busca:<br><br>";
} else {
echo "Nenhum registro foi encontrado";
}
while ($reg = mysql_fetch_array($sql)){
$id = $reg['id'];
$tipo = $reg['tipo'];
$cabelo = $reg['cabelo'];
$pele = $reg['pele'];
$olho = $reg['olho'];
$finalidade = $reg['finalidade'];
$nome = $reg['nome'];
$idade = $reg['idade'];
$caracteristica = $reg['caracteristica'];
echo "$id $tipo $cabelo $pele $olho $finalidade $nome $idade $caracteristica<br>";
}
?>


Faltou ; na linha 46 (y)

Edição feita por: Hawk, 04/04/2005, 14:42.


#5 amauritoscano

amauritoscano

    Turista

  • Usuários
  • 34 posts
  • Sexo:Não informado

Posted 04/04/2005, 18:51

galera, valeu pela força, ja está solucionado o problema!!! (y)

o DarK ThaleS me ajudou e ta funcionando direitinho agora. :P

vou postar o codigo aki pra quem quizer usar:
<?
include"config.php";

$sql = mysql_query("SELECT * from cadastro WHERE (id like '%$id%') AND (tipo like '%$tipo%') AND (cabelo like '%$cabelo%') AND (pele like '%$pele%') AND (olho like '%$olho%') AND (finalidade like '%$finalidade%') AND (nome like '%$nome%') AND (idade like '%$idade%')") or die(mysql_error());
$linhas = mysql_num_rows($sql);
echo "Foram encontrados <b>$linhas</b> registros para sua busca:<br><br>";
if (!$sql){
echo "Nenhum registro foi encontrado";
}
else{
while ($reg = mysql_fetch_array($sql)){
$id = $reg['id'];
$tipo = $reg['tipo'];
$cabelo = $reg['cabelo'];
$pele = $reg['pele'];
$olho = $reg['olho'];
$finalidade = $reg['finalidade'];
$nome = $reg['nome'];
$idade = $reg['idade'];
$caracteristica = $reg['caracteristica'];
echo "$id $tipo $cabelo $pele $olho $finalidade $nome $idade $caracteristica<br>";
}
}
?>





1 user(s) are reading this topic

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

IPB Skin By Virteq