Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Aqui vai uma demonstração de uma consulta que a medida que você digita ela tras os resultados do banco de dados instantaneamente:
Para ver funcionando CLIQUE AQUI.
Segue o código:
Esse é o código onde você irá digitar o que quer buscar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
//função para pegar o objeto ajax do navegador
function xmlhttp()
{
// XMLHttpRequest para firefox e outros navegadores
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
// ActiveXObject para navegadores microsoft
var versao = ['Microsoft.XMLHttp', 'Msxml2.XMLHttp', 'Msxml2.XMLHttp.6.0', 'Msxml2.XMLHttp.5.0', 'Msxml2.XMLHttp.4.0', 'Msxml2.XMLHttp.3.0','Msxml2.DOMDocument.3.0'];
for (var i = 0; i < versao.length; i++)
{
try
{
return new ActiveXObject(versao[i]);
}
catch(e)
{
alert("Seu navegador não possui recursos para o uso do AJAX!");
}
} // fecha for
return null;//função para fazer a requisição da página que efetuará a consulta no DB
function carregar()
{
a = document.getElementById('busca').value;
ajax = xmlhttp();
if (ajax)
{
ajax.open('get','busca.php?busca='+a, true);
ajax.onreadystatechange = trazconteudo;
ajax.send(null);
}
}
//função para incluir o conteúdo na pagina
function trazconteudo()
{
if (ajax.readyState==4)
{
if (ajax.status==200)
{
document.getElementById('resultados').innerHTML = ajax.responseText;
}
}
}
</script>
</head>
<body>
<form id="form1" action="" method="post">
Busca: <input type="text" name="busca" id="busca" value="" onkeyUp="carregar()"/>
</form>
<p> </p><div id="resultados" style="border:1px solid #CCCCCC; width:200px;">
</div>
</body>
</html>
Esse é o código que efetuará a consulta na base de dados:
Salve como busca.php
<?php
mysql_connect("localhost","root","");
mysql_select_db("pesquisa");
$busca = $_GET['busca'];
if($busca != "") {
$sql = "SELECT * FROM cadastros WHERE cadastro LIKE '%$busca%' ORDER BY cadastro ASC ";
$query = mysql_query($sql);
//variavel para zebrar as linhas
$cont = 0;
while($row = mysql_fetch_object($query)) {
//faz a diferenciação das cores para as linhas dos resultados
if($cont %2 ==0) {
$cor = "#EDEDED";
} else {
$cor = "#FFFFFF";
}
echo "<div style='background:$cor'>";
echo $row->idcadastro. " - ";
echo $row->cadastro."<br>";
echo "</div>";
$cont ++;
}
}
?>
Segue o código de uma base de dados para teste.
Crie um banco de dados com o nome de pesquisa;
CREATE TABLE `cadastros` (
`idcadastro` int(5) NOT NULL auto_increment,
`cadastro` varchar(100) NOT NULL,
PRIMARY KEY (`idcadastro`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;
--
-- Extraindo dados da tabela cadastros
--
INSERT INTO cadastros (idcadastro, cadastro) VALUES
(1, 'Vectra'),
(2, 'Fusca'),
(3, 'vectra cd'),
(4, 'astra'),
(5, 'ogi'),
(6, 'gol 1.8'),
(7, 'Fiat uno'),
(8, 'Fiat elba'),
(9, 'S10'),
(10, 'F250'),
(11, 'golf'),
(12, 'golf gti'),
(13, 'gol gti'),
(14, 'corsa'),
(15, 'Kombi'),
(16, 'Wariant'),
(17, 'Celta'),
(18, 'corsa sedan'),
(19, 'Monza'),
(20, 'Honda'),
(21, 'Honda civic'),
(22, 'Punto'),
(23, 'Fiat tipo'),
(24, 'Stilo'),
(25, 'Caravan'),
(26, 'Opala'),
(27, 'Omega CD'),
(28, 'Omega');
Atenciosamente,
Edimilson sousa Quelipe.
At+
Faz o seguinte, troca:
$query = mysql_query($sql);por
$query = mysql_query($sql) or die( mysql_error() ); e ai você vai ver o motivo do erro.
eai quelipe, tava tentando adapta teu codigo, mas apresentou um erro...
tem algum outro modo de eu deixar dessa forma aqui?
<?php
mysql_connect("localhost","root","");
mysql_select_db("admin");
$busca = $_GET['busca'];
if($busca != "") {
$sql = "SELECT * FROM noticias WHERE titulo LIKE '%$busca%' ORDER BY titulo ASC ";
$query = mysql_query($sql);
//variavel para zebrar as linhas
$cont = 0;
while($row = mysql_fetch_object($query)) {
$id= $dados["id"];
$titulo= $dados["titulo"];
$texto= $dados["texto"];
$data= $dados["data"];
//faz a diferenciação das cores para as linhas dos resultados
echo "
<table width='878' border='0' cellspacing='3' cellpadding='0' align='center' class='noticia'>
<tr>
<td width='170' class='noticia'>$titulo</td>
<td width='454' class='noticia'>$texto</td>
<td width='140' class='noticia'>$data</td>
<td width='60' class='noticia'><a href='?pag=editar-noticia&id=$id'><img src='images/edit.png' border='0' /></a></td>
<td width='60' class='noticia'><a href='?pag=excluir-not&id=$id'><img src='images/remove.png' border='0' /></a></td>
</tr>
</table>";
}
}
?>
erro
Fatal error: Cannot use object of type stdClass as array in C:\xampp\htdocs\admin\busca.php on line 14
linha 14
$id= $dados["id"];
como posso resolver isso?
abraço
só pra avisar que ja consegui ;)
fiz assim
<?php
mysql_connect("localhost","root","");
mysql_select_db("admin");
$busca = $_GET['busca'];
if($busca != "") {
$sql = "SELECT * FROM noticias WHERE titulo LIKE '%$busca%' ORDER BY titulo ASC ";
$query = mysql_query($sql);
//variavel para zebrar as linhas
$cont = 0;
while($row = mysql_fetch_object($query)) {
?>
<table width='878' border='0' cellspacing='3' cellpadding='0' align='center' class='noticia'>
<tr>
<td width='170' class='noticia'><?php echo $row->titulo ?></td>
<td width='454' class='noticia'><?php echo $row->texto ?></td>
<td width='140' class='noticia'><?php echo $row->data ?></td>
<td width='60' class='noticia'><a href='?pag=editar-noticia&id=<?php echo $row->id ?>'><img src='images/edit.png' border='0' /></a></td>
<td width='60' class='noticia'><a href='?pag=excluir-not&id=<?php echo $row->id ?>'><img src='images/remove.png' border='0' /></a></td>
</tr>
</table>
<?php
}
}
?>
;)Você está tentando acessar um stdClass como se fosse um array.
Veja que o fetch utilizado no código foi o object, então ele deverá ser acessado como um objeto e não como um array.
$titulo = $dados->titulo;
Veja que é diferente de
$titulo = $dados['titulo'];
Nossa, bem legal.
Vai servir para algo que eu estava fazendo.
Obrigado.
Bom Dia
irmão sou novo na programação em PHP, achei esse código show mas não consegui fazer funcionar adpatei as minhas necessidades mas deu esse erro
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\PORTAL\busca.php on line 13
OU SEJA NESSA LINHA ESTÁ DANDO ERRO, e está do mesmo jeito da sua, pode me ajudar por favor ?
Obrigado!
Durvaldo Razoni.