Pesquisar em mais de uma coluna

12/06/2017

0

Gostaria de saber como faço esta pesquisa em pdo.
 <?php
								  	//selecionando categoria no banco
									$query = "select idcat, nomecat
									         from categorias
											 where ativada ='1'
											 and controle ='1'";
								    $result1 = mysql_query($query,$conec) or die (mysql_error());	
									while ($linha1 = mysql_fetch_array($result1))
										  {
										  	echo "<option value =\\"$linha1[0]\\">$linha1[1]</option>";
										  }
								  ?>
Claudemir

Claudemir

Responder

Post mais votado

13/06/2017

Olá Claudemir, tudo bem?

Sua dúvida não fico muito clara. No caso você só quer fazer o mesmo procedimento utilizando PDO? Na sua pergunta você diz que quer selecionar mais de uma coluna.

Vamos lá,

Primeiro você vai ter a declaração da sua query

$query = "select idcat, nomecat from categorias where ativada = ? and controle = ? ";


Depois você vai prepara-lá com a conexão que você já vai ter pronta

$stmt = $dbh->prepare($sql);


Após, vc vai passar os parâmetros:

$stmt->bindValue(1, $ativada);
$stmt->bindValue(2, $controle);


E por último você vai executar a query:

$stmt->execute();


Espero ter ajudado, qualquer dúvida é só falar.

Calebe Menezes

Calebe Menezes
Responder

Mais Posts

13/06/2017

Claudemir

Obrigado pela sugestão, mas eu preciso que filtre na coluna ativada os registros =1 e o controle =1.
Poderiam me ajudar?
Responder

14/06/2017

Calebe Menezes

Opa Claudemir, beleza?

Então,você vai definir o valor das variáveis $ativada e $controle antes dos parâmetros serem passados. Eu colocaria até antes da query para o código ser executado.

Você simplesmente vai definir desse jeito:

$ativada = 1;
$controle = 1;


Nesse caso acima, estou definindo esses valores colocando o valor diretamente neles, mas esse valores pode vir de um post por exemplo:

$ativada = $_POST['ativada'];
$controle = $_POST['controle'];


Que seria o caso mais adequado para você utilizar os parâmetros no pdo. Porque se os valores sempre forem esses, você pode utilizar diretamente na sua query


$query = "select idcat, nomecat from categorias where ativada = 1 and controle = 1 ";


Qualquer dúvida é só falar.
Responder

15/06/2017

Claudemir

Agora deu certo.
Mas tenho outra duvida,
Tenho uma segunda consulta mas não deu certo.
fiz assim
<select name="notedi" >
                                <option value=" ">selecionar</option>
                                <?php
								  	//selecionando categoria no banco
									
									$PDO = db_connect();
									$query2 = "select idedicao, nomedicao from edicao where controle = 1 ";
									
											 $stmt2 = $PDO->prepare($query2);
											 $stmt2->bindValue('1', 1, PDO::PARAM_INT);
									
 

 
$stmt2->execute();
 
$user2 = $stmt2->fetch(PDO::FETCH_ASSOC);
									
										
									while($linha2 = $stmt2->fetch(PDO::FETCH_BOTH)) 
										  {
										  	echo "<option value =\\"$linha2[0]\\">$linha2[1]</option>";
										  }
								  ?>
                              </select>
Responder

18/06/2017

Claudemir

Alguém pode me ajudar??
Responder

19/06/2017

Calebe Menezes

Olá Claudemir.

O que exatamente não deu certo na segunda consulta? A consulta não trouxe nenhum resultado?
Responder

19/06/2017

Claudemir

Sim, a segunda consulta não trouxe nenhum resultado.
Responder

20/06/2017

Calebe Menezes

Então Claudemir,

Quanto a query, a mesma está certa na sintaxe pelo que vi aqui.

Existe algum registro na sua tabela em que o valor do campo controle seja igual a 1?


Fiquei confuso com o seguinte trecho:

<?php
//selecionando categoria no banco

$PDO = db_connect();
$query2 = "select idedicao, nomedicao from edicao where controle = 1 ";


No caso as categorias estão na tabela edicao?


Também gostaria de ver como está a função db_connect()


Qualquer coisa é só falar :)
Responder

23/06/2017

Claudemir

Olá, Pessoal.

Então, o código acima é referente a um segundo filtro.

vou postar o código inteiro.
<select name="notcat">
                                  <option value=" ">selecionar</option>
                                  <?php
								  	//selecionando categoria no banco
									
									
									
                                    $PDO = db_connect();
									$query1 = "select idcat, nomecat from categorias where ativada = 1 and controle = 1 ";
									
											 $stmt = $PDO->prepare($query1);
											 //$stmt->bindValue(':pass', 12345, PDO::PARAM_STR); 
#ou assim.
//$stmt->bindValue(':pass', 'senha', PDO::PARAM_STR);

											 
											 
											 //$stmt->bindValue(1, $ativada);
//$stmt->bindValue(2, $controle);
 

 
$stmt->execute();
 
$user = $stmt->fetch(PDO::FETCH_ASSOC);
									
										
									while($linha1 = $stmt->fetch(PDO::FETCH_BOTH)) 
										  {
										  	echo "<option value =\\"$linha1[0]\\">$linha1[1]</option>";
										  }
								  ?>
                                </select>
                                </font></font></div></td>
                            <td> </td>
                            <td align="center"><font size="2"><font size="2"><font face="Arial, Helvetica, sans-serif"> 
                              <select name="notedi" >
                                <option value=" ">selecionar</option>
                                <?php
								  	//selecionando categoria no banco
									
									$PDO = db_connect();
									$query2 = "select idedicao, nomedicao from edicao where controle = 1 ";
									
											 $stmt2 = $PDO->prepare($query2);
											 //$stmt2->bindParam('1', 1, PDO::PARAM_INT);
											//$stmt2->bindValue('1', $controle);
											//$stmt2->bindParam('1', PDO::PARAM_INT);
									//$stmt2->bindValue(1, $controle);
//$stmt->bindValue(2, $controle);
 

 
$stmt2->execute();
 
$user2 = $stmt2->fetch(PDO::FETCH_ASSOC);
									
										
									while($linha2 = $stmt2->fetch(PDO::FETCH_BOTH)) 
										  {
										  	echo "<option value =\\"$linha2[0]\\">$linha2[1]</option>";
										  }
								  ?>
                              </select>

O primeiro filtro deu certo e o segundo não.
Poderiam me ajudar?
Responder

26/06/2017

Fabio Rocha

Olá Claudemir,

Primeiro verifique no seu banco de dados ou pelo phpMyAdmin ou outra ferramente consulte seu SQL
select idedicao, nomedicao from edicao where controle = 1


Se ele retornou algum registro sabemos que tem dados com esta query.

Pois seu código me parece ok em relação ao PHP PDO.

Abraços
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar