Pesquisar em mais de uma coluna
12/06/2017
0
<?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
Post mais votado
13/06/2017
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
Mais Posts
13/06/2017
Claudemir
Poderiam me ajudar?
14/06/2017
Calebe Menezes
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.
15/06/2017
Claudemir
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>
19/06/2017
Calebe Menezes
O que exatamente não deu certo na segunda consulta? A consulta não trouxe nenhum resultado?
20/06/2017
Calebe Menezes
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 :)
23/06/2017
Claudemir
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?
26/06/2017
Fabio Rocha
Primeiro verifique no seu banco de dados ou pelo phpMyAdmin ou outra ferramente consulte seu SQL
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
Clique aqui para fazer login e interagir na Comunidade :)