Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alanartes

uso do like na query

Recommended Posts

Tenho essa query;

 

$contato='Dono' or 'Proprietário' or 'Sócio' or 'Responsável' or 'Diretoria' or 'Conselhos' or 'CEO' or 'Gerente';
$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE dado LIKE '%$contato%' AND massas_dados = '$cod_extrair'";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);
echo $totalRows_buscar_contato;

 

 

$contato ta vindo do banco e lá esta assim

 

'Gerente Alan'

 

Ou seja quero buscar todos registros que contém $contato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta um laço para trazer cada registro. Desta maneira, está trazendo só o primeiro mesmo.

Outra coisa, esse $contato não vai funcionar desta maneira.

$contato = array('Dono','Proprietário','Responsável','Conselhos','CEO','Sócio','Diretoria','Gerente'); // * Joguei todas as possibilidades em um array

for ($i = 0; $i < count($contato); $i++){ // * Faço um laço para montar os OR's
    $contatoQuery .= ($i == 0) ? $contato : " OR ".$contato[$i]; // Se for o primeiro, não adiciona OR no início
}

$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE dado LIKE '%".$contatoQuery."%' AND massas_dados = '".$cod_extrair."'"; // * Concatenei da maneira correta

$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);

Compartilhar este post


Link para o post
Compartilhar em outros sites
$contato = array('Dono','Proprietário','Responsável','Conselhos','CEO','Sócio','Diretoria','Gerente'); // * Joguei todas as possibilidades em um array

for ($i = 0; $i < count($contato); $i++){ // * Faço um laço para montar os OR's
    $contatoQuery .= ($i == 0) ? $contato : " OR ".$contato[$i]; // Se for o primeiro, não adiciona OR no início
}

$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);
$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE dado LIKE '%".$contatoQuery."%' AND massas_dados = '".$cod_extrair."'";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);

Deu erro:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in...

Compartilhar este post


Link para o post
Compartilhar em outros sites
$contato = array('Dono','Proprietário','Responsável','Conselhos','CEO','Sócio','Diretoria','Gerente'); // * Joguei todas as possibilidades em um array

for ($i = 0; $i < count($contato); $i++){ // * Faço um laço para montar os OR's
    $contatoQuery .= ($i == 0) ? $contato : " OR ".$contato[$i]; // Se for o primeiro, não adiciona OR no início
}

$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);
$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE dado LIKE '%".$contatoQuery."%' AND massas_dados = '".$cod_extrair."'";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);

Deu erro:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in...

 

Depois do "for" você está chamando um mysql_fetch_assoc e passando como parametro uma variavel que não existe, $buscar_contato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça na ordem que o Maykel-ctba passou, senão ele não vai conhecer uma variável que ainda não existe :D

E se atente na diferença entre "$buscar_contato" e "$query_buscar_contato", você ta passando um nome na hora de executar a query e outro nome na hora de criar o array associativo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$contato = array('Dono','Proprietário','Responsável','Conselhos','CEO','Sócio','Diretoria','Gerente');
// * Joguei todas as possibilidades em um array

for ($i = 0; $i < count($contato); $i++){ // * Faço um laço para montar os OR's
$contatoQuery .= ($i == 0) ? $contato : " OR ".$contato[$i]; // Se for o primeiro, não adiciona OR no início
}

$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE dado LIKE '%".$contatoQuery."%' AND massas_dados = '".$cod_extrair."'";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);

Nao deu erro, mas nao retornou o valor esperado referente ao dado

Alan Gerente

Compartilhar este post


Link para o post
Compartilhar em outros sites

este modelo que fiz deu certo anterimente

mysql_select_db($database_dados, $dados);

 

$endereco='Rua' or 'Travessa' or 'Trav.' or 'Avenida' or 'Av.' ;
$query_buscar_endereco = "SELECT * FROM indice_de_dados WHERE dado LIKE '%%%$endereco%%' AND massas_dados = '$cod_extrair'";
$buscar_endereco = mysql_query($query_buscar_endereco, $dados) or die(mysql_error());
$row_buscar_endereco = mysql_fetch_assoc($buscar_endereco);
$totalRows_buscar_endereco = mysql_num_rows($buscar_endereco);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahhhh sim... tu montou a consulta direto. Mas ta faltando aspas ai heim. Ja que é só uma string, use aspas duplas no inicio e no fim...

 

 

Pode fazer assim naquela linha:

$contato="'%Dono%' OR dados LIKE '%Proprietário%' OR dados LIKE '%Sócio%' OR dados LIKE '%Responsável%' OR dados LIKE '%Diretoria%' OR dados LIKE '%Conselhos%' OR dados LIKE '%CEO%' OR dados LIKE'%Gerente%'";

 

e na query vc deixa assim apenas:

$query_buscar_endereco = "SELECT * FROM indice_de_dados WHERE dado LIKE $contato AND massas_dados = '$cod_extrair'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

$contato="'%Dono%' OR dados LIKE '%Proprietário%' OR dados LIKE '%Sócio%' OR dados LIKE '%Responsável%' OR dados LIKE '%Diretoria%' OR dados LIKE '%Conselhos%' OR dados LIKE '%CEO%' OR dados LIKE'%Gerente%'";

$query_buscar_endereco = "SELECT * FROM indice_de_dados WHERE dado LIKE $contato AND massas_dados = $cod_extrair";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);

 

Erro: Query was empty

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua $contato e $query_buscar_endereco por:

$clausulaLike = "
	(dados LIKE '%Dono%') OR 
	(dados LIKE '%Proprietário%') OR 
	(dados LIKE '%Sócio%') OR 
	(dados LIKE '%Responsável%') OR 
	(dados LIKE '%Diretoria%') OR 
	(dados LIKE '%Conselhos%') OR 
	(dados LIKE '%CEO%') OR 
	(dados LIKE '%Gerente%')";
	
$query_buscar_endereco = "SELECT * FROM indice_de_dados WHERE ".$clausulaLike." AND massas_dados = $cod_extrair";

Se possível, imprima $query_buscar_endereco depois disso (através de um echo por exemplo) e cole no seu gerenciador do banco. Veja o que retorna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query_buscar_endereco = "SELECT * FROM indice_de_dados WHERE dado LIKE dados $contato AND massas_dados = $cod_extrair";
faltou o primeiro "dados" rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_select_db($database_dados, $dados);
$clausulaLike = "
(dado LIKE '%Dono%') OR
(dado LIKE '%Proprietário%') OR
(dado LIKE '%Sócio%') OR
(dado LIKE '%Responsável%') OR
(dado LIKE '%Diretoria%') OR
(dado LIKE '%Conselhos%') OR
(dado LIKE '%CEO%') OR
(dado LIKE '%Gerente%')";

$query_buscar_contato = "SELECT * FROM indice_de_dados WHERE ".$clausulaLike." AND massas_dados = $cod_extrair";
$buscar_contato = mysql_query($query_buscar_contato, $dados) or die(mysql_error());
$row_buscar_contato = mysql_fetch_assoc($buscar_contato);
$totalRows_buscar_contato = mysql_num_rows($buscar_contato);
echo $row_buscar_contato['dado'];

 

Valew a ajuda de todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.