Ir para conteúdo

Arquivado

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

lucrod1

como criar função que pesquisa no banco

Recommended Posts

preciso fazer uma funcao q ao usuario digitar num campo textfield essa funcao pesquise no banco de dados a principio com o comando onKeypress

alguem pode ajudar ? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

preciso fazer uma funcao q ao usuario digitar num campo textfield essa funcao pesquise no banco de dados a principio com o comando onKeypress

alguem pode ajudar ? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

ao digitar num campo input="text" name="id_pac"

exemplo 1 ia chamar um funcao q pesquisa no banco nome do paciente com o cod 1 passando como parametro o q usuario digitou... obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho... procura no google por "Busca e paginação."

Tu vai ter que encontrar um e adaptar ao seu sistema.

Quando encontrar, se tiver dúvidas de como adaptar à sua aplicação, volta ae.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

preciso fazer uma funcao q ao usuario digitar num campo textfield essa funcao pesquise no banco de dados a principio com o comando onKeypress

alguem pode ajudar ? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

ao digitar num campo input="text" name="id_pac"

exemplo 1 ia chamar um funcao q pesquisa no banco nome do paciente com o cod 1 passando como parametro o q usuario digitou... obrigado pela ajuda

 

vo postar aqui meu codigo

 

<input type="text" name="pront" id="pront" size="6" value="<?php echo $pront ?>" />

 

<?php

$sql = "select * from pacientes where id_pac = '$pront'";

$result = mysql_query($sql);

$row = mysql_fetch_array($result);

$id_convenio = $row["id_convenio"];

$cns = $row["cns_pac"];

$nome_pac = $row["nome_pac"];

echo $nome_pac;

?>

queria o seguinte q a parte po php possar ser feita em funcao pq? bom pq dae posso chamar pelo evento onkeypress ou outro q vai executa a funcao e atualiza o nome do paciente entenderam ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo procura pela função LIKE do mysql.

meu amigo mas a funçao like não é para pesquisar parte um campo ???

 

meu caso queria uma funcao onde o usuario entra com o id do paciente num campo text e ao sair chamasse um funcao que pesquisaria no banco o nome do paciente e mostrasse no outro campo o nome!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho...

dependendo da sua estrutura a função like resolveria o seu problema facilmente.

 

é igual eu te recomendei: scripts de busca e paginação resolvem isto, desde que você faça uma leve adaptação. =)

 

eu tenho um script que ia te ajudar bastante. o problema é que ele está no meu serviço. Só poderia te passar segunda-feira.

Espero que até lá você resolva o seu problema. Caso contrário eu te passo ele.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho...

dependendo da sua estrutura a função like resolveria o seu problema facilmente.

 

é igual eu te recomendei: scripts de busca e paginação resolvem isto, desde que você faça uma leve adaptação. =)

 

eu tenho um script que ia te ajudar bastante. o problema é que ele está no meu serviço. Só poderia te passar segunda-feira.

Espero que até lá você resolva o seu problema. Caso contrário eu te passo ele.

 

Abraços.

entao alter naum intendi direito o q quiz dizer tenhu tabm codigo aqui na pesquisa onte utilizo sim paginacao ? mas tenhu duvida em fazer a busca em funcao!!! em php é facil mas como fazer em modo de funcao ???

 

figura

 

seria assim como a figura user digitava no campo prontuario o numero do prontuario e automaticamente atualizava o nome entao queria criar a funcao para pesquisar onde chamaria ela no codigo

<input type="text" name="pront" id="pront" size="6" onKeypress"funcaopesquisa();"/> dae ao sair atualizava automaticamente o nome!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode crer cara...

Agora que eu te entendi.

Eu estava pensando que você iria pesquisar por qualquer campo e iria retornar o registro inteiro.

 

Tipo: faço uma busca por 'php', e são retornados todos os registros que contém a palavra 'php'.

 

Vacilei... o que você quer não tem nada a ver com o que eu tava pensando.

Acho que a melhor forma de você fazer isso é utilizando ajax.

 

Vou ver se encontro alguma coisa e posto aqui pra te ajudar.

 

Desculpem o vacilo ae.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu queres uma função, que no momento de pesquisa do usuário ele apareça os dados. Sem precisar recarregar a pagina certo.

 

Se for esse o seu caso você deveria usar ajax.

 

Muita calma agora...

Eu criei aqui uma pequena aplicação.

Seria bom tu utilizar ela antes de passar para a tua ok =D

 

1- Primeiro agente cria a pagina onde vai ser realizada as buscas:

 

 

CODE
<html>

<head>

<title>..:: Consulta Paciente</title>

</head>

 

<script language="javascript" type="text/javascript">

 

function Dados(valor) {

//verifica se o browser tem suporte a ajax

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

}catch(e) {

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

}catch(ex) {

try {

ajax = new XMLHttpRequest();

}catch(exc) {

alert("Esse browser não tem recursos para uso do Ajax");

ajax = null;

}

}

}

 

//se tiver suporte ajax

if(ajax) {

ajax.open("POST", "consulta_banco.php", true); // envia para a parte onde retorna a consulta

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

ajax.onreadystatechange = function() {

//enquanto estiver processando...emite a msg de carregando

if(ajax.readyState == 1) {

document.getElementById('objeto_nome').value = 'carregando...';

}

//após ser processado - chama função processXML que vai varrer os dados

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}else {

//caso não seja um arquivo XML emite a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

}

}

//passa o código do estado escolhido

var params = "id_pac="+valor;

ajax.send(params);

}

}

 

function processXML(obj){

//pega a tag paciente

var dataArray = obj.getElementsByTagName("paciente");

//total de elementos contidos na tag paciente

if(dataArray.length > 0) {

//percorre o arquivo XML paara extrair os dados

for(var i = 0 ; i < dataArray.length ; i++) {

var item = dataArray;

 

var nome = item.getElementsByTagName("nome")[0].firstChild.nodeValue;

 

document.getElementById('objeto_nome').value = nome;

}

}

else {

//caso o XML volte vazio, printa a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

}

</script>

 

 

<body>

 

Código do Paciente<br />

<input type="text" name="id_pac" id="id_pac" onBlur="Dados(this.value)" /><br />

Nome do paciente<br />

<input type="text" name="objeto_nome" id="objeto_nome" />

 

</body>

</html>

 

 

Nessa página tem um script, [ o tar du ajax uhuhu ], ele serve para não precisar recarregar a a pagina no momento em que esta pesquisando no banco de dados.

 

Se tu reparar eu coloquei um input e ele só executa a função quando for no onBlur [na saida do edit], tu disse que queria com o onkeyup, eu aconselho você que não faça isso, senão vai destruir o seu sistema =D

 

 

 

2- Agora vem a classe baixa de consulta com o banco.

 

CODE

<?PHP

 

require_once("FastConnection.php");

 

 

$id_pac = $_POST["id_pac"];

 

$sql = sprintf('select * from paciente where id = "%s"',

addslashes($id_pac)

);

$sql = mysql_query($sql);

$row = mysql_num_rows($sql);

 

 

if($row) {

//XML

$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";

$xml .= "<pacientes>\n";

 

//PERCORRE ARRAY

for($i=0; $i<$row; $i++) {

$nome_paciente = mysql_result($sql, $i, "nome_paciente");

 

$xml .= '<paciente>\n';

$xml .= '<nome>'. $nome_paciente .'</nome>\n';

$xml .= '</paciente>\n';

}

$xml.= "</pacientes>\n";

 

//CABEÇALHO

Header("Content-type: application/xml; charset=iso-8859-1");

}//FECHA IF (row)

 

//PRINTA O RESULTADO

echo $xml;

 

?>

 

Ele faz a consulta e guarda o XML. Esse XML vai ser usado pela primeira pagina para imprimir. Repara que ele envia como Header para o cabeçalho do SCRIPT

 

Na primeira pagina o script vai percorrer o XML e imprimir o resultado.

 

 

3- Conexao Com o banco de dados.

 

<?

 

$conn = mysql_connect("localhost", "root", "")

or die("Erro na conexão com a base de dados");

 

$db = mysql_select_db("laboratorio", $conn)

or die("Erro na seleção da base de dados");

?>

 

4- Aqui vem o banco que eu usei para testar, já com os insertes prontos para você não ter trabalho.

 

create database laboratorio;

 

create table paciente(

id integer not null auto_increment,

nome_paciente varchar(200) not null,

 

primary key(id)

);

 

 

insert into paciente(nome_paciente) values('paciente 01 - nordeste');

 

insert into paciente(nome_paciente) values('paciente 02 - suldeste');

 

insert into paciente(nome_paciente) values('paciente 03 - norte');

 

insert into paciente(nome_paciente) values('paciente 04 - centro oeste');

 

insert into paciente(nome_paciente) values('paciente 05 - sul');

 

 

 

 

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

 

Com esse ajax que eu coloquei para você.

Eu já fiz um bocado de aplicações nele. Ele esta totalmente bem estruturado, e bem feito =D

 

 

 

Na parte onde tem

document.getElementById('objeto_nome').value

 

Voce pode inserir outros objetos, por exemplo, se quiser carregar um conteudo dentro de uma div, em vez de value você usa o innerHTML...

 

Etc...

 

 

Da para fazer inúmeras consultas e manipular elas do jeito que você quiser.

 

 

→ Já utilizei num banco de cep, para digitar o cep e aparecer o endereço

→ Carregar combobox tipo escolher o UF e ele carregar no combo do lado apenas as cidades desse UF

→ Carregar dados dinamicamente dentro de divs, tabelas, inputs, etc...

 

 

 

Se for essa sua dúvida espero ter ajudado =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu queres uma função, que no momento de pesquisa do usuário ele apareça os dados. Sem precisar recarregar a pagina certo.

 

Se for esse o seu caso você deveria usar ajax.

 

Muita calma agora...

Eu criei aqui uma pequena aplicação.

Seria bom tu utilizar ela antes de passar para a tua ok =D

 

1- Primeiro agente cria a pagina onde vai ser realizada as buscas:

 

 

CODE
<html>

<head>

<title>..:: Consulta Paciente</title>

</head>

 

<script language="javascript" type="text/javascript">

 

function Dados(valor) {

//verifica se o browser tem suporte a ajax

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

}catch(e) {

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

}catch(ex) {

try {

ajax = new XMLHttpRequest();

}catch(exc) {

alert("Esse browser não tem recursos para uso do Ajax");

ajax = null;

}

}

}

 

//se tiver suporte ajax

if(ajax) {

ajax.open("POST", "consulta_banco.php", true); // envia para a parte onde retorna a consulta

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

ajax.onreadystatechange = function() {

//enquanto estiver processando...emite a msg de carregando

if(ajax.readyState == 1) {

document.getElementById('objeto_nome').value = 'carregando...';

}

//após ser processado - chama função processXML que vai varrer os dados

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}else {

//caso não seja um arquivo XML emite a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

}

}

//passa o código do estado escolhido

var params = "id_pac="+valor;

ajax.send(params);

}

}

 

function processXML(obj){

//pega a tag paciente

var dataArray = obj.getElementsByTagName("paciente");

//total de elementos contidos na tag paciente

if(dataArray.length > 0) {

//percorre o arquivo XML paara extrair os dados

for(var i = 0 ; i < dataArray.length ; i++) {

var item = dataArray;

 

var nome = item.getElementsByTagName("nome")[0].firstChild.nodeValue;

 

document.getElementById('objeto_nome').value = nome;

}

}

else {

//caso o XML volte vazio, printa a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

}

</script>

 

 

<body>

 

Código do Paciente<br />

<input type="text" name="id_pac" id="id_pac" onBlur="Dados(this.value)" /><br />

Nome do paciente<br />

<input type="text" name="objeto_nome" id="objeto_nome" />

 

</body>

</html>

 

 

Nessa página tem um script, [ o tar du ajax uhuhu ], ele serve para não precisar recarregar a a pagina no momento em que esta pesquisando no banco de dados.

 

Se tu reparar eu coloquei um input e ele só executa a função quando for no onBlur [na saida do edit], tu disse que queria com o onkeyup, eu aconselho você que não faça isso, senão vai destruir o seu sistema =D

 

 

 

2- Agora vem a classe baixa de consulta com o banco.

 

CODE

<?PHP

 

require_once("FastConnection.php");

 

 

$id_pac = $_POST["id_pac"];

 

$sql = sprintf('select * from paciente where id = "%s"',

addslashes($id_pac)

);

$sql = mysql_query($sql);

$row = mysql_num_rows($sql);

 

 

if($row) {

//XML

$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";

$xml .= "<pacientes>\n";

 

//PERCORRE ARRAY

for($i=0; $i<$row; $i++) {

$nome_paciente = mysql_result($sql, $i, "nome_paciente");

 

$xml .= '<paciente>\n';

$xml .= '<nome>'. $nome_paciente .'</nome>\n';

$xml .= '</paciente>\n';

}

$xml.= "</pacientes>\n";

 

//CABEÇALHO

Header("Content-type: application/xml; charset=iso-8859-1");

}//FECHA IF (row)

 

//PRINTA O RESULTADO

echo $xml;

 

?>

 

Ele faz a consulta e guarda o XML. Esse XML vai ser usado pela primeira pagina para imprimir. Repara que ele envia como Header para o cabeçalho do SCRIPT

 

Na primeira pagina o script vai percorrer o XML e imprimir o resultado.

 

 

3- Conexao Com o banco de dados.

 

<?

 

$conn = mysql_connect("localhost", "root", "")

or die("Erro na conexão com a base de dados");

 

$db = mysql_select_db("laboratorio", $conn)

or die("Erro na seleção da base de dados");

?>

 

4- Aqui vem o banco que eu usei para testar, já com os insertes prontos para você não ter trabalho.

 

create database laboratorio;

 

create table paciente(

id integer not null auto_increment,

nome_paciente varchar(200) not null,

 

primary key(id)

);

 

 

insert into paciente(nome_paciente) values('paciente 01 - nordeste');

 

insert into paciente(nome_paciente) values('paciente 02 - suldeste');

 

insert into paciente(nome_paciente) values('paciente 03 - norte');

 

insert into paciente(nome_paciente) values('paciente 04 - centro oeste');

 

insert into paciente(nome_paciente) values('paciente 05 - sul');

 

 

 

 

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

 

Com esse ajax que eu coloquei para você.

Eu já fiz um bocado de aplicações nele. Ele esta totalmente bem estruturado, e bem feito =D

 

 

 

Na parte onde tem

document.getElementById('objeto_nome').value

 

Voce pode inserir outros objetos, por exemplo, se quiser carregar um conteudo dentro de uma div, em vez de value você usa o innerHTML...

 

Etc...

 

 

Da para fazer inúmeras consultas e manipular elas do jeito que você quiser.

 

 

→ Já utilizei num banco de cep, para digitar o cep e aparecer o endereço

→ Carregar combobox tipo escolher o UF e ele carregar no combo do lado apenas as cidades desse UF

→ Carregar dados dinamicamente dentro de divs, tabelas, inputs, etc...

 

 

 

Se for essa sua dúvida espero ter ajudado =D

 

è isso mesmo q necessito apesar de naum ter testado mas lido seu post parece resolver sim!!!

pq tenhu q implementar tambem este caso do cep onde pessoa digita o cep e dae preenche o campo rua cidade e tals vo analisar e postarei a resposta até agora agradeço a todos por ter me ajudado !!! vo testar aqui vlew

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro weibson testei e ta parando neste if

 

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}else {

//caso não seja um arquivo XML emite a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

 

pq ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro weibson testei e ta parando neste if

 

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}else {

//caso não seja um arquivo XML emite a mensagem abaixo

document.getElementById('objeto_nome').value = '';

}

 

pq ???

Eu fiz essa parte do else para ele apagar o edit, porque se não encontrar nada não tem o porque de ficar o nome carregando...

 

 

E se o ajax.responseXML é true que dizer que é ele retornou alguma coisa.

então ele esta mandando para a outra função do javascript chamada processXML(ajax.responseXML) e está passando como parâmetro o próprio resultado do ajax.

 

 

^^

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.