Pesquisa ao digitar

PHP

24/01/2016

Olá amigos,

Sou novato por aqui e gostaria de contar com o apoio de vocês. Através deste portal, criei uma pesquisa baseada em ajax e php que consiste em efetuar uma consulta de acordo com as inicias digitadas. Está funcionando quando não digito nada exibe tudo e quando digito algo exibe a msg que não encontrou registros.
Veja o princípio da sitaxe:
if(isset($_GET["txtnome"])){
$nome=$_GET["txtnome"];
if(empty($nome)){
$sql = "SELECT * FROM up_ramais_sede";
}else{
$nome .='%';
$sql = "SELECT * FROM up_ramais_sede nome like '$nome'";
}
sleep(1);
$result = mysqli_query($conn,$sql);
$cont = mysqli_affected_rows($conn);

if($cont>0)
Não consegui identificar onde está o erro. Me ajudem por favor. Preciso muito desta pesquisa.

ACT
Antonio Souza

Antonio Souza

Curtidas 0

Melhor post

William

William

24/01/2016

Então Márcio pelo o que entendi sobre a dúvida dele, o problema é na pesquisa de registros, ele não consegue trazer resultados de acordo com um termo pesquisado!

Me parece que o seu link tem relação com persistência de dados em "formulários" HTML.
GOSTEI 1

Mais Respostas

Marcio Araujo

Marcio Araujo

24/01/2016

Boa tarde Antonio, publiquei um código que pode te ajudar.

[url]https://www.devmedia.com.br/forum/dica-formulario-que-persiste-dados-na-busca/541165[/url]
GOSTEI 0
Antonio Souza

Antonio Souza

24/01/2016

Seu código é muito bom e posso no futuro até precisar. Te agradeço. Porém minha questão é outra.
GOSTEI 0
Marcio Araujo

Marcio Araujo

24/01/2016

Que pena, aguardar alguem com conhecimento em Ajax.

Obs: o código não é meu.
GOSTEI 0
William

William

24/01/2016

Olá Antonio, por gentileza quando for postar trechos de código utilize a tag CODE para deixar mais legível.
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20160124-200618.png[/img]

Quanto a sua dúvida poste a instrução AJAX e o código completo do script PHP que realiza a consulta!
GOSTEI 0
Marcio Araujo

Marcio Araujo

24/01/2016

O código que postei(link) ajuda William?
GOSTEI 0
Marcio Araujo

Marcio Araujo

24/01/2016

Ah obrigado pelo esclarecimento, ainda não testei esse código.
GOSTEI 0
Antonio Souza

Antonio Souza

24/01/2016

Valeu e desculpa, não me liguei na tag.

<?php
require_once('../projeto/dts/iniSis.php');
require_once('../projeto/dts/dbaSis.php'); //encontra-se o link de conexão
$conn=connect();
// nova regra
if(isset($_GET["txtnome"])){
$nome=$_GET["txtnome"];
if(empty($nome)){
$sql = "SELECT * FROM up_ramais_sede";
}else{
$nome .='%';
$sql = "SELECT * FROM up_ramais_sede nome like '$nome'";
}
sleep(1);
$result = mysqli_query($conn,$sql);
$cont = mysqli_affected_rows($conn);

if($cont>0){
$tabela = '<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Nome:</th>
<th>Setor:</th>
<th>Ramal:</th>
<th colspan="4">ações:</th>
</tr>
</thead>
</tbody>
<tr>';
$return = $tabela;
foreach($result as $linha):
// while($linha=mysqli_fetch_array($result)){
$return .='<td>'.$linha['nome'].'</td>';
$return .='<td align="center">'.$linha['setor'].'</td>';
$return .='<td align="center">'.$linha['ramal'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';

$return .='</tr>';
endforeach;
//}
echo $return .='</table>';
}else{
echo 'Não foram encontrados registros';
}
}



/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest();
}catch (IEAtual){

try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(IEAntigo){

try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(falha){
request = false;
}
}
}

if (!request)
alert("Seu Navegador não suporta Ajax!");
else
return request;
}

/**
* Função para enviar os dados
/************************** */
function getDados(){
/**************************/
// Declaração de Variáveis
var nome = document.getElementById("txtnome").value;
var result = document.getElementById("Resultado");
var xmlreq = CriaRequest();

// Exibi a imagem de progresso
result.innerHTML = '<img src="Progresso1.gif"/>';

// Iniciar uma requisição
xmlreq.open("GET", "Contato.php?txtnome=" + nome, true);

// Atribui uma função para ser executada sempre que houver uma mudança de ado
xmlreq.onreadystatechange = function(){

// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {

// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
result.innerHTML = xmlreq.responseText;
}else{
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
};
xmlreq.send(null);
}
GOSTEI 0
William

William

24/01/2016

Contínua não usando a TAG, vou analisar seu código:

<?php 
require_once('../projeto/dts/iniSis.php');
require_once('../projeto/dts/dbaSis.php'); //encontra-se o link de conexão
$conn=connect(); 
// nova regra
if(isset($_GET["txtnome"])){
$nome=$_GET["txtnome"];
if(empty($nome)){
$sql	=	"SELECT * FROM up_ramais_sede";
}else{
$nome .='%';
$sql =	"SELECT * FROM up_ramais_sede nome like '$nome'";
}
sleep(1);
$result	=	mysqli_query($conn,$sql);
$cont	=	mysqli_affected_rows($conn);

if($cont>0){
$tabela = '<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Nome:</th>
<th>Setor:</th>
<th>Ramal:</th>
<th colspan="4">ações:</th>
</tr>
</thead>
</tbody>
<tr>';
$return = $tabela;
foreach($result as $linha):
// while($linha=mysqli_fetch_array($result)){ 
$return .='<td>'.$linha['nome'].'</td>';
$return .='<td align="center">'.$linha['setor'].'</td>';
$return .='<td align="center">'.$linha['ramal'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';
$return .='<td align="center">'.$linha['id'].'</td>';

$return .='</tr>';
endforeach;
//}
echo $return .='</table>';
}else{
echo 'Não foram encontrados registros';
}
}



/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest(); 
}catch (IEAtual){

try{
request = new ActiveXObject("Msxml2.XMLHTTP"); 
}catch(IEAntigo){

try{
request = new ActiveXObject("Microsoft.XMLHTTP"); 
}catch(falha){
request = false;
}
}
}

if (!request) 
alert("Seu Navegador não suporta Ajax!");
else
return request;
}

/**
* Função para enviar os dados
/************************** */
function getDados(){
/**************************/
// Declaração de Variáveis
var nome = document.getElementById("txtnome").value;
var result = document.getElementById("Resultado");
var xmlreq = CriaRequest();

// Exibi a imagem de progresso
result.innerHTML = '<img src="Progresso1.gif"/>';

// Iniciar uma requisição
xmlreq.open("GET", "Contato.php?txtnome=" + nome, true);

// Atribui uma função para ser executada sempre que houver uma mudança de ado
xmlreq.onreadystatechange = function(){

// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {

// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
result.innerHTML = xmlreq.responseText;
}else{
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
};
xmlreq.send(null);
}
GOSTEI 1
Antonio Souza

Antonio Souza

24/01/2016

Eu te agradeço muito. Quero dizer cliquei na tag conforme me informou. O meu erro foi quando ao colar o código não coloquei entre as tags. Desculpa mais uma vez, tomarei cuidado na próxima.
GOSTEI 0
Antonio Souza

Antonio Souza

24/01/2016

Olá William,

Vejo que não deu importância ao meu questionamento sobre a pesquisa, não é mesmo. Ficou de analisar e me retornar! Vale lembrar que a função foi obtida neste mesmo portal.
GOSTEI 0
William

William

24/01/2016


Vejo que não deu importância ao meu questionamento sobre a pesquisa, não é mesmo. Ficou de analisar e me retornar! Vale lembrar que a função foi obtida neste mesmo portal.


Então Antonio fiquei de analisar seu código sim, mas infelizmente não vivo de responder fóruns apesar de já ter respondido mais de 1900 dúvidas!

Acesso o fórum conforme minha disponibilidade de tempo que ultimamente tem sido pouco, as pessoas ajudam quando podem e tem tempo para testar códigos.

Quanto ao seu escript, seu erro está nesse trecho, está faltando "WHERE" na instrução SQL:
else{
$nome .='%';
$sql =  "SELECT * FROM up_ramais_sede nome like '$nome'";
}


OBS: Consultas com strings concatenadas são uma falha grande de segurança, pesquise sobre parametrização de consultas.
GOSTEI 0
POSTAR