Ir para conteúdo
Fórum Script Brasil
  • 0

Busca De Multiplos Campos.


dev

Pergunta

Estou fazendo 2 trabalhos ao mesmo tempo e, pra ajudar, estou tendo problema nos 2... huh.gif

estou ficando doidinha!!

Bem, neste aqui, eu enrosquei na busca, estou tentando usar um arquivo que já usei antes, inclusive, foram vocês que me ajudaram da outra vez (Obrigada de novo!!!)... mas não está dando certo.

Acontece o seguinte: a busca tem vários campos e pode ser que a pessoa escolha só um ou vários ao mesmo tempo, sendo assim... se eu usar AND direto dá erro e se eu colocar OR a busca não retorna corretamente quando a pessoa seleciona mais de 1 campo.

Poxa, será que deu pra entender?

Estou postando meu código abaixo, do jeito que está ele funciona se eu selecionar só 1 campos mas está buscando só 1 dos campos e não os 2 ao mesmo tempo (quando é o caso). Está ignorando o segundo campo.

Obs.: fiz uma limpeza no código para facilitar a visualização de vocês, se tiver algum errinho de "," ou algo parecido é só aqui, ok? Também deixei só 2 campos de ex na busca, mas são todos estes do $_POST.

Desde já, muito obrigada. wink.gif

<?

// INÍCIO RESULTADO PESQUISA

if($acao == 'pesquisar') {

if(isset($_POST["pesquisar"])) {

$nascano = $_POST["nascano"];

$sexo = $_POST["sexo"];

$periodo = $_POST["periodo"];

$cidade = $_POST["cidade"];

$grauform = $_POST["grauform"];

$curso1 = $_POST["curso1"];

$ingles = $_POST["ingles"];

$espanhol = $_POST["espanhol"];

$frances = $_POST["frances"];

$italiano = $_POST["italiano"];

$japones = $_POST["japones"];

$alemao = $_POST["alemao"];

$qualidi = $_POST["qualidi"];

IF ($nascano != "")  $sql2 = "nascano = '$nascano' AND";

IF ($periodo != "")  $sql2 = "periodo = '$periodo' AND";

?>

<table><tr><td colspan=14" height="18">

<?

$TAMANHO_PAGINA1 = 20;

// Validação para não exibir a página 0

$pagina1 = $_GET["pagina];

if (!$pagina1) {

   $inicio1 = 0;

   $pagina1=1;

}

else {

   $inicio1 = ($pagina1 - 1) * $TAMANHO_PAGINA1;

}

$rs1 = mysql_query("SELECT * FROM curriculos WHERE ".$sql2." email = ''");

$num_total_registros1 = mysql_num_rows($rs1);

$total_paginas1 = ceil($num_total_registros1 / $TAMANHO_PAGINA1);

echo "Total de Currículos Encontrados: " . $num_total_registros1 . "</b>";

echo "Página " . $pagina1 . " de " . $total_paginas1 . "</b>";

             ?>

</td></tr>

<tr>

<td width="38">Login</td>

<td width="38">Nasc</td>

</tr>

<?

$rs2 = mysql_query("SELECT * FROM curriculos WHERE ".$sql2." email != '' limit " . $inicio1 . "," . $TAMANHO_PAGINA1);

while($array2 = mysql_fetch_array($rs2)) {

         if ($array2 > 0) {

           $t++;

           if ($t % 2 == 0) {

           $cor="#FFF2D7";

            } else {

            $cor="#ffffff";

           }

echo "<tr bgcolor='$cor'>"; ?>

<td width="185"><?echo $array2['email'];?>td>

<td width=38" <?echo $array2['nascano];?>td>

</tr>

<?

}

  }

}

} // fecha acao pesquisar

// FINAL RESULTADO PESQUISA

?>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Oi, Sperto_Rox !

Obrigada pela ajuda !

Mas continua dando erro... dry.gif

Parece que é no "." do $sql .=

Se eu tiro o "." não dá erro... mas, é lógico, tb não funciona...

E quando coloco o "." aparece: "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource..."

Também, só pra teste, tentei assim:

$sql = "SELECT * FROM curriculos WHERE $sql italiano = ''";

$sql = "qualidi = '' AND";

if ($nascano != '') {

$sql .= "nascano='$nascano' AND";}

Nesse caso, ele lê a primeira parte e ignora o "$sql .="

Tem idéia do que pode ser?

Obrigada a todos.

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço pela dica. Toda idéia é muito bem vinda !

Agora não está aparecendo o erro, mas a busca sempre vem zerada, mesmo quando tenho certeza que o cadastro/curriculo existe.

Alguém consegue saber qual é o erro? O estranho é que tenho um arquivo desse em outro site e tá funcionando direitinho... Que troço doido!

Bem, depois de idas e vindas no código... agora ele está assim:

// listei todos os campos do form assim:

if ($alemao != '') $sql .= " alemao='$alemao' AND ";

if ($qualidi != '') $sql .= " qualidi='$qualidi' AND";

// coloquei o where email != ''  porque não há nenhum cadastro sem email.

$sqlb = "SELECT * FROM curriculos WHERE $sql email != ''";

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

vou postar um codigo de um que eu fiz

<?
$sql = "SELECT * FROM usuarios WHERE v='1'";
    if ($grupo_form == "todos") {
  
  } else {
  $sql .= " AND grupo = '$grupo_form'";
    }

    if ($nome_form == false) {
  
  } else {
  $sql .= " AND nome LIKE \"%$nome_form%\"";
    }
    if ($descricao_form == false) {
  
  } else {
  $sql .= " AND descricao LIKE \"%$descricao_form%\"";
    }
    if ($messenger_form == false) {
  
  } else {
  $sql .= " AND messenger LIKE \"%$messenger_form%\"";
    }
    if ($email_form == false) {
  
    } else {
  $sql .= " AND email LIKE \"%$email_form%\"";
    }
    if ($ip_form == "") {
  
    } else {
  $sql .= " AND ip='$ip_form'";
    }
    if ($mac_form == "") {
  
    } else {
  $sql .= " AND mac LIKE \"%$mac_form%\"";
    }
    $sql .= " ORDER BY nome";
    $exe = mysql_query($sql, $conexao) or print mysql_error();

se não entender da um toque

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, Sperto_Rox !

Muito obrigada pela ajuda! biggrin.gif

Depois de tentar um monte de coisas o código resolveu funcionar, não tenho certeza se é isso e nem se faz sentido... mas parece que o que resolveu foi trocar as aspas duplas por aspas simples... será? huh.gif

Bem, salvei este código que você enviou agora, pois poderá ser útil no futuro.

Valeu mesmo.

Um abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...