Ir para conteúdo

POWERED BY:

Arquivado

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

jailtonB

Como fazer uma Consulta Dinamica PHP MYSQL

Recommended Posts

Olá pessoal, comercei agora em PHP e tenho um problema a resolver.

 

Gostaria de fazer uma consulta a uma tabela mysql, onde escolho os campos que quero visualizar.

Tabela: Funcionarios

campos: Matricula

nome

supervisor

departamento

data admisao

Quero consultar selecionando os campos em uma combobox ou radiobuton, a matricula, nome e data admissao. Daí busca apenas aqueles campos citados no banco mysql.

Não tenho uma ideia clara de fazer isso em php e puxar do banco. Se alguem tiver algum script parecido ou material falando deste tipo de sonsulta.

 

Desde já agradeço. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes...

Primeiro passo crie um arquivo de conexão com seu banco de dados.

Segundo crie uma consulta e faça ela exibir os dados

Terceiro você faz os filtros necessários...

 

Vou te passar um exemplo de conexão com o banco de dados , coloque os seus dados e tente se conectar:

 

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "banco";

$a = @mysql_connect($host, $user, $pass) or die(mysql_error());
@mysql_select_db($db, $a) or die("Erro ao conectar com o Banco de Dados");
?>

 

Vamos por partes...

Primeiro passo crie um arquivo de conexão com seu banco de dados.

Segundo crie uma consulta e faça ela exibir os dados

Terceiro você faz os filtros necessários...

 

Vou te passar um exemplo de conexão com o banco de dados , coloque os seus dados e tente se conectar:

 

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "banco";

$a = @mysql_connect($host, $user, $pass) or die(mysql_error());
@mysql_select_db($db, $a) or die("Erro ao conectar com o Banco de Dados");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok... Parceiro é isso mesmo,

já esta conectando com o banco e inserindo os dados, o que me falta é a lógica da consulta com filtros dos campos que preciso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jailton B;

 

Bom, primeiro você precisa fazer o seu filtro em html com os checkbox e etc, tomando atenção que cada elemento do formulario terá o seu campo name preenchido, que é o que faz com que o campo possa ser referenciado pelo php ao enviar o formulario.

 

A lógica pode ser feita assim:

 

A query tem de ser construída dinamicamente, ou seja, ela vai mudar de acordo com o que o usuário selecionou.

Por exemplo:

 

Digamos que o usuário selecionou os campos nome e endereço, então a query vai ser assim:

 

"SELECT nome, endereço FROM tabela"

 

Ja, se ele selecionou apenas o nome, a query vai ser:

 

"SELECT nome FROM tabela"

 

pra fazer isso, você pode usar o comando isset do php:

 

$sql = 'SELECT ';
$arrayCampos = array();

if(isset($_POST['nome']){
   $arrayCampos[] = 'nome';
}


if(isset($_POST['endereco']){
   $arrayCampos[] = 'endereco';
}

// e assim sucessivamente

// agora, coloco os campos selecionados no select da query
$sql .= implode(',',$arrayCampos);

// e por fim, termino a query
$sql .= ' FROM tabela WHERE bla bla bla...';

// e só então rodo a consulta
$res = mysql_query($sql);

 

Ops..

corrigindo, pra ficar mais claro

 

Cada elemento input, select, textarea, etc, do formulario, tem que ter o seu atributo "name" preenchido para que o php possa manipular o dado enviado.

 

Ex:

 

<form name="filtro" id="filtro" action="script.php" method="post">
   <input type="text" name="endereco" id="endereco" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jailton B;

 

Bom, primeiro você precisa fazer o seu filtro em html com os checkbox e etc, tomando atenção que cada elemento do formulario terá o seu campo name preenchido, que é o que faz com que o campo possa ser referenciado pelo php ao enviar o formulario.

 

A lógica pode ser feita assim:

 

A query tem de ser construída dinamicamente, ou seja, ela vai mudar de acordo com o que o usuário selecionou.

Por exemplo:

 

Digamos que o usuário selecionou os campos nome e endereço, então a query vai ser assim:

 

"SELECT nome, endereço FROM tabela"

 

Ja, se ele selecionou apenas o nome, a query vai ser:

 

"SELECT nome FROM tabela"

 

pra fazer isso, você pode usar o comando isset do php:

 

$sql = 'SELECT ';
$arrayCampos = array();

if(isset($_POST['nome']){
   $arrayCampos[] = 'nome';
}


if(isset($_POST['endereco']){
   $arrayCampos[] = 'endereco';
}

// e assim sucessivamente

// agora, coloco os campos selecionados no select da query
$sql .= implode(',',$arrayCampos);

// e por fim, termino a query
$sql .= ' FROM tabela WHERE bla bla bla...';

// e só então rodo a consulta
$res = mysql_query($sql);

 

Ops..

corrigindo, pra ficar mais claro

 

Cada elemento input, select, textarea, etc, do formulario, tem que ter o seu atributo "name" preenchido para que o php possa manipular o dado enviado.

 

Ex:

 

<form name="filtro" id="filtro" action="script.php" method="post">
   <input type="text" name="endereco" id="endereco" />
</form>

-----------------------------------------------------------

 

André Marcondes

Achei muito interessante esse modo de fazer cara, mas desculpa minha falta de conhecimento como eu

preencheria corretamente esses codigos chamando a varia nome e endereco...

 

// agora, coloco os campos selecionados no select da query

$sql .= implode(',',$arrayCampos);

 

// e por fim, termino a query

$sql .= ' FROM tabela WHERE bla bla bla...';

 

Se você pudesse terminar esse codigo, completinho de como ficaria, daí eu faria em todos os dados aui das minhas tabelas... Desde já agradeço sua ajuda, vlww

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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