Array
(
)

Select usando PDO

PHP
Helio Junior
   - 15 out 2013

Ola pessoal, estou tentando efetuar uma consulta utilizando PDO.
O select seria da seguinte forma,
No form tem um List que contem os nomes dos campos da tabela e um input que deve ser informado o valor da busca.
Estou tentando utilizar da seguinte forma:
#Código

$sql = "SELECT * FROM qd_usuarios WHERE :bus_campo LIKE :bus_valor";
$buscar = $pdo->prepare($sql);
$buscar->bindColumn(':bus_campo', $campo_bus, PDO::PARAM_STR);
$buscar->bindValue(':bus_valor', "%$valor_bus%", PDO::PARAM_STR);
$buscar->execute();


mas não esta dando certo.
Alguém pode me ajudar?

Leandro_richard
   - 23 out 2013

Boa tarde Helio,
Poderia postar o código do seu form também ?

Helio Junior
   - 02 nov 2013

Codigo do Form.:
#Código

<form name="buscar_jogadores" id="buscar_jogadores" action="/qd_admin/perguntas/bus/jogadores.html" method="get" enctype="application/x-www-form-urlencoded" lang="pt">
                <table style="text-align: left; width: 980px;" border="0" cellpadding="0" cellspacing="0">

                    <tr>
                        <td style="text-align: left; width: 240px;" >
                            <label for="campo">Campo</label>
                            <select name="campo">
                                <option value="id">ID</option>
                                <option value="codigo">Código</option>
                                <option value="nome">Nome</option>
                                <option value="quizname">Quizname</option>
                                <option value="cpf">CPF</option>
                                <option value="data_nascimento">Dt. Nasc.</option>
                                <option value="cidade">Cidade</option>
                                <option value="estado">estado</option>
                                <option value="cep">CEP</option>
                                <option value="email">E-mail</option>
                            </select>
                        </td>
                        <td style="text-align: left; width: 700px;" >
                            <span>Texto:</span> <input name="valor" type="text" size="50" /></td>
                        <td style="text-align: left; width: 10px;" > </td>
                    </tr>
                    <tr>
                        <td style="text-align: center; width: 700px;" colspan="3"><button id="btnBuscar" value="buscar" name="buscar">Buscar</button></td>
                    </tr>
                </table>
            </form>


Cogido que recebe do Form.:
#Código
$valor_bus = $_GET['valor'];
        $campo_bus = $_GET['campo'];

        $sql_bus_jogador_pg = "SELECT * FROM qd_usuarios WHERE :campo_a LIKE :valor_a";
        try {
            $tod_buscar_jogador_pg = $pdo->prepare($sql_bus_jogador_pg);
            $tod_buscar_jogador_pg->bindValue(':campo_a', $campo_bus, PDO::PARAM_STR);
            $tod_buscar_jogador_pg->bindValue(':valor_a', "%$valor_bus%", PDO::PARAM_STR);
            $tod_buscar_jogador_pg->execute();
            $total_jogadores = $tod_buscar_jogador_pg->rowCount();

            $quantidade_bus = 20;
            $pagina_bus = (isset($_GET['pagina']) ? (int) $_GET['pagina'] : 1);
            $inicio_bus = ($quantidade_bus * $pagina_bus) - $quantidade_bus;

            $sql_bus_jogador = "SELECT * FROM qd_usuarios WHERE :bus_campo LIKE :bus_valor";

            try {
                $totalPagina = ceil($total_jogadores / $quantidade_bus);
               
                $tod_buscar_jogador = $pdo->prepare($sql_bus_jogador);
                $tod_buscar_jogador->bindColumn(':bus_campo', $campo_bus, PDO::PARAM_STR);
                $tod_buscar_jogador->bindValue(':bus_valor', "%$valor_bus%", PDO::PARAM_STR);
                $tod_buscar_jogador->execute();
                
                echo $campo_bus.'<br>';
                echo $valor_bus.'<br>';
                echo $tod_buscar_jogador->rowCount();
                if ($tod_buscar_jogador->rowCount() > 0) {
                    $smt->assign("res_Buscar", "mostra_busca");
                    echo "teste";
                    while ($arr_quest = $tod_buscar_jogador->fetch()) {
                        $resId[] = $arr_user['id'];
                        $resNome[] = $arr_user['nome'];
                        $resQuizname[] = $arr_user['quiz_name'];
                        $resQuizname1[] = $arr_user['quiz_name_1'];
                        $resQuizname2[] = $arr_user['quiz_name_2'];
                        $resQuizname3[] = $arr_user['quiz_name_3'];
                        $resQuizname4[] = $arr_user['quiz_name_4'];
                        $resQuizname5[] = $arr_user['quiz_name_5'];
                        $resEmail[] = $arr_user['email'];
                        $resDataCad[] = $arr_user['dt_cadastro'];
                        $resCPF[] = $arr_user['cpf'];
                        $resNascimento[] = $arr_user['dt_nascimento'];
                        $resRua[] = $arr_user['rua'];
                        $resNumero[] = $arr_user['numero'];
                        $resBairro[] = $arr_user['bairro'];
                        $resCidade[] = $arr_user['cidade'];
                        $resEstado[] = $arr_user['estado'];
                        $resCEP[] = $arr_user['cep'];
                        $resFone[] = $arr_user['fone'];
                        $resCreditos[] = $arr_user['creditos'];
                        $resStatus[] = $arr_user['status'];
                    }
                    $smt->assign("resId", $resId);
                    $smt->assign("resNome", $resNome);
                    $smt->assign("resQuizname", $resQuizname);
                    $smt->assign("resQuizname1", $resQuizname1);
                    $smt->assign("resQuizname2", $resQuizname2);
                    $smt->assign("resQuizname3", $resQuizname3);
                    $smt->assign("resQuizname4", $resQuizname4);
                    $smt->assign("resQuizname5", $resQuizname5);
                    $smt->assign("resEmail", $resEmail);
                    $smt->assign("resDataCad", $resDataCad);
                    $smt->assign("resCPF", $resCPF);
                    $smt->assign("resNascimento", $resNascimento);
                    $smt->assign("resPaginacao", $paginacao);
                    $smt->assign("resRua", $resRua);
                    $smt->assign("resNumero", $resNumero);
                    $smt->assign("resBairro", $resBairro);
                    $smt->assign("resCidade", $resCidade);
                    $smt->assign("resEstado", $resEstado);
                    $smt->assign("resCEP", $resCEP);
                    $smt->assign("resFone", $resFone);
                    $smt->assign("resCreditos", $resCreditos);
                    $smt->assign("resStatus", $resStatus);
                }
            } catch (PDOException $erroBusca) {
                echo 'erro ao buscar:' . $erroBusca->getMessage();
            }
        } catch (PDOException $erroBusca) {
            echo 'erro ao buscar:' . $erroBusca->getMessage();
        }


Tem alguns detalhes ai que é o Smarty Template.

Adilson
   - 08 dez 2015

Alguem me ajuda a usar o PDO no codigo abaixo???

#Código

<?php // Verifica se existe a variável txtnome
if (isset($_GET["txtnome"])) { $nome = $_GET["txtnome"];
// Conexao com o banco de dados
$server = "localhost";
$user = "root";
$senha = "";
$base = "teste";
$conexao = mysql_connect($server, $user, $senha) or die("Erro na conexão!");
mysql_select_db($base);
// Verifica se a variável está vazia
if (empty($nome))
{
$sql = "SELECT * FROM contato"; }
else {
$nome .= "%"; $sql = "SELECT * FROM contato WHERE nome like '$nome'";
} sleep(1); $result = mysql_query($sql); $cont = mysql_affected_rows($conexao);
// Verifica se a consulta retornou linhas
if ($cont > 0) {
// Atribui o código HTML para montar uma tabela
$tabela = "<table border='1'>
<thead> <tr>
<th>NOME</th>
<th>TELEFONE</th>
<th>CELULAR</th>
<th>EMAIL</th>
</tr> </thead> <tbody> <tr>";
$return = "$tabela";
// Captura os dados da consulta e inseri na tabela HTML
while ($linha = mysql_fetch_array($result)) {
$return.= "<td>" . utf8_encode($linha["nome"]) . "</td>";
$return.= "<td>" . utf8_encode($linha["fone"]) . "</td>";
$return.= "<td>" . utf8_encode($linha["celular"]) . "</td>";
$return.= "<td>" . utf8_encode($linha["email"]) . "</td>";
$return.= "</tr>"; } echo $return.="</tbody></table>"; }
else {
// Se a consulta não retornar nenhum valor, exibi mensagem para o usuário
echo "Não foram encontrados registros!";
}
}
?>