Ir para conteúdo

Arquivado

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

josenilson

query com varios like

Recommended Posts

Boa galera, 

 

estou tentando criar uma consulta onde o usuário vai poder pesquisar em um input varias colunas no banco como por exemplo, nome e rg, 

 

tenho essa consulta abaixo, mas a mesma só  funciona por nome quando tendo adicionar uma nova coluna não funciona , outro erro é o seguinte, quando dar certo pesquisar por  rg essa consulta esta pegando todos os rg que contem os números que digito exemplo:  Se eu digitar 1298 ai alguém tiver o rg 87981298, a consulta lista  esta pessoa quero deixar assim, exemplo ao consultar 1298 ela me traga somente aquele rg que começa com 1298,  e não que contenha isso no meio dele ou no final do rg . 

 

abaixo minha consulta 

 

if (isset($_POST["search"])) {
		$searchq = $_POST["search"];
		$searchq = preg_replace("#[^0-9a-z]#i", "",$searchq);
		
	$consulta = $pdo->query(" SELECT * FROM cad_cliente WHERE nome LIKE '%$searchq%' OR nome  LIKE '%$searchq%' OR rg LIKE '%$searchq%'  ")or die ("could not search !");
		
	while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
    // aqui eu mostro os valores de minha consulta
   
   		echo "
   	
      <div id='resultado' class='form-inline'>
       <legend></legend>
      Nome: <input style='width:340px;font-size:13px' value='{$linha['nome']}' class='form-control' readonly />
      RG: <input style='width:120px;font-size:13px'  value='{$linha['rg']}' class='form-control' readonly>
      </div> 

   		";
		
			}
		
	
		}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1234567

234567

34567

4567

 

like '%456%'

tras

 

1234567

234567

34567

 

like '456%'

tras

4567

 

like '%1%7%

tras'

 

1234567

 

ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que 

1 hora atrás, Motta disse:

1234567

234567

34567

4567

 

like '%456%'

tras

 

1234567

234567

34567

 

like '456%'

tras

4567

 

like '%1%7%

tras'

 

1234567

 

ajudou ?

O que eu entendi foi que: Like busca o valor informado por toda a  coluna, pergunta o que eu uso então para pesquisar pela sequencia inicial que informo, exemplo:

 

1234

12345

 

like %123%

 trás 

1234

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim o % na primeira e última posição como em like '%234%'  trará tudo que tiver 234 em qualquer posição.

 

Veja o manual para detalhes.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Motta disse:

Sim o % na primeira e última posição como em like '%234%'  trará tudo que tiver 234 em qualquer posição.

 

Veja o manual para detalhes.

 

 

Entendi, 

 

Motta, 

 

no script abaixo eu estou tentando listar todos os clientes cadastrados mas tem que ser todos do mês 8 e listar  começando de 01 ate 31 o que esta errado ?

na função  eu só estou conseguindo listar o mês 8 mas o dia não consigo listar de 1 a 31 fica tudo misturado . 

 

function nascidos_em_agosto($agosto){
	
$pdo = conectar();
	
try {
    $mes_atual = date("8");
    $dia = date ('1');
  
    $listar = $pdo->query("SELECT * FROM cad_cliente WHERE month (data_nascimento) = $mes_atual  ") or die(mysql_error());
	$listar->execute();
	
	
	$dados = $listar->fetchAll(PDO::FETCH_ASSOC);
	
	if ($listar->rowCount() > 0){
		return $dados;		
	}else{
		
		return false;	
	}
	

	
	} catch(PDOException $erro) {
		echo "ERRO AO lISTAR" . $erro->getMessage();
   
	}
}

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por janir.matheus
      Boa tarde, peço ajuda dos membros desse fórum pois confesso estar completamente perdido.
      Tomando como base o diagrama (em anexo), preciso de uma query que retorne as empresas, seus produtos e as categorias de cada produto, sendo que cada produto pode pertencer a uma ou mais categorias.
       
      select tbl_produtos.Empresa, tbl_empresas.Nome, tbl_catprod.Categoria, tbl_classproduto.Classe, tbl_produtos.Id, tbl_produtos.Produto from tbl_produtos inner join tbl_empresas on tbl_produtos.Empresa = tbl_empresas.Id left join tbl_catprod on tbl_produtos.Id = tbl_catprod.Categoria left join tbl_classproduto on tbl_catprod.Categoria = tbl_classproduto.Id; Tentei a consulta mostrada acima mas o resultado não foi o que eu esperava.
      Agradeço antecipadamente pela ajuda.

    • Por FabianoSouza
      Pessoal, por que essa query com COLLATE  não funciona?
      declare @strPesquisa varchar(30) SET @strPesquisa = 'naicle' SET @sql = 'SELECT ' SET @sql = @sql + 'ML.nome ' SET @sql = @sql + 'FROM ' SET @sql = @sql + 'dbo.minhaTab AS ML ' SET @sql = @sql + ' WHERE ' SET @sql = @sql + ' nome LIKE ' SET @sql = @sql + '''%' + @strPesquisa COLLATE Latin1_General_CI_AI + '%''' EXEC (@sql) Não acusa erro ao rodar.
      Mas não traz os registro porque está gravado como "naiclê" (com acento), o que significa que não está aplicando a COLLATE.
       
      Montando essa mesma query mas da forma tradicional, o COLLATE funciona.
       
      SELECT ML.nome FROM dbo.minhaTab AS ML WHERE nome LIKE '%'+ @strPesquisa COLLATE Latin1_General_CI_AI+'%'  
       
    • Por peterstefan
      Olá, estou com uma query aqui e preciso pegar de 2 campos diferentes os dados diferente de 0,  mais quanto tento no AND ele somente traz um resultado, o OR ele traz um dos campos com o valor 0, teria alguma forma de pegar os dados diferente de 0 dos dois campus?
      preciso pegar o idOrganizador diferente de 0 e o idPiloto diferente de 0 
       
      SELECT * FROM boletos WHERE proc = 0 AND idOrganizador !='0' AND idPiloto ='0';  
    • Por Artur Mendonça
      Olá amigos.
      espero que estejam todos bem.
       
      Estou tentando criar uma galeria de imagens e colocar nestas um botão para votação (Gosto como no Facebook).

      Já consegui criar a galeria e colocar o Like nas imagens, mas acontece que quando  as imagens passam para a linha de baixo o botão Like não acompanha a imagem.
       
      Junto uma imagem para exemplificar como está e como deveria ser.
       
      O CSS está assim
      h1 { text-align: center; color: forestgreen; margin: 30px 0 50px; } .container h2 { text-align: center; color: rgb(8, 8, 8); margin: 30px 0 50px; } .gallery { margin: 10px 50px; padding-right: 0px; padding-left: 0px; } .gallery img { width: 230px; padding: 0px; opacity: 0.5; filter: grayscale(10%); transition: 1s; margin-top: 10px; margin-left: 10px; margin-bottom: 10px; margin-right: 0px; border: 2px solid #ccc; border-radius: 10%; } .ilike { display: grid; border-radius: 10%; box-sizing: border-box; text-align: left; padding: 15px; font-size: 20px; vertical-align: top; position: absolute; z-index: 1000; margin-top: 10px; margin-left: 10px; overflow: hidden; color: white; } O código da página da galeria de fotos está assim:
      <div class="gallery"> <?php $sql = "SELECT * FROM tbl_gallery where aid=$aid"; $num_rows = mysqli_num_rows(mysqli_query($conectar, $sql)); $result = mysqli_query($conectar, $sql); while ($row = mysqli_fetch_array($result)) { $gimage = $row['gimages']; $fotoid = $row['gid']; $likes = $row['likes']; ?> <a href="páginapararegistarovoto" ?> "><i class="far fa-thumbs-up ilike" alt="Vote"> <?php echo $likes; ?> </i></a> <i class="inum" > <?php echo "Foto " . $fotoid; ?> </i> <?php echo "<a href='../fotos/$gimage' data-lightbox='mygallery' data-title='Foto n.º: $fotoid'><img src='../thumbnails/$gimage' class='pic'></a>"; } ?> </div>  
       
       

    • Por mamotinho
      oi pessoal estou com um problema , não estou conseguindo passar todos os valores o foreach no json_encode() alguém poderia me ajudar, eu estou tentando monta um mecanismo de refresh em tempo real de uma lista de notificação veja abaixo:
       
      <script type="text/javascript"> function make_call() { // Fazendo requisição AJAX $j.post('teste.php', function (frase) { // Exibindo frase $j('#listas').html('<i>' + frase + '</i>'); }, 'JSON'); setTimeout(function(){ make_call(); }, 5000); } </script>
      Aqui é o arquivo que quero enviar para a div #lists
       
      <?php require("conexao/directory.php"); $notificar = $db->query("select TOP 5 * from Techi7CP.dbo.cabal_notificacao_geral order by regdate desc"); $notificacao = $notificar->fetchAll(); $count_notificacao = abs($notificar->rowCount()); if($count_notificacao==0){ echo '<li style="text-align:center;">não existe notificações no momento.</li>'; }else{ foreach($notificacao as $notif){ $consulta_conta = $db->query("select * from account.dbo.cabal_auth_table where UserNum='".$notif['usernum']."'")->fetchObject(); switch($notif['acao']){ case 'logadopremiado' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle red small">redeem</span>'.$notif['jogador'].' ganhou no Logado Premiado</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'mudarsenha' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle teal small">vpn_key</span>'.$consulta_conta->Nome.' alterou sua senha</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'distribuirpontos' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle cyan small">control_point</span>'.$notif['jogador'].' distribuiu seus pontos</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'girodasorte' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle brown small">star_border</span>'.$consulta_conta->Nome.' usou o giro da sorte</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'sistematpoint' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle green small">golf_course</span>'.$notif['jogador'].' recebeu seu tpoint por clique</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'combo' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle amber small">videogame_asset</span>'.$notif['jogador'].' fez '.$notif['ExtraDetalhes'].' em sua primeira vez</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; } } } ?> como eu faria para ser exibido todos os resultados registrados com o json_encode().
×

Informação importante

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