Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2016, 13:04
facamez
 
Fecha de Ingreso: noviembre-2015
Mensajes: 12
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta Buscador PHP + MySQL +Ajax

Hola, buenos días a todos. Soy un novato en PHP y me incursioné en unos tutoriales que enseñaban unas bases de PHP para luego hacer lo que buscaba: un buscador PHP con base de datos (MySQL) y que dicho buscador tenga la función de autocompletar (mediante Ajax). Estoy aquí porque básicamente no me salió y me gustaría saber qué es lo que tengo mal en el código.

Empecemos desde el principio: tengo hosting de "byethost.com", que soporta PHP y MySQL.

la base de datos que hice de prueba tiene de nombre "taxones", aunque byethost.com me la pone como "b32_17298343_taxones". Es una base de datos sencilla, solo tiene dos columnas ("genero" y "especie") y unas 4 filas con los datos que introduje.

Ahora bien, aquí os paso los códigos:

1) El index.php con el form y el código php:

<?php
include('class.Conexion.php')

if(isset($_POST['buscar'])) {
$db = new Conexion();
$filtro = $db->real_escape_string($_POST['buscar']);
$sql = $db->query("SELECT * FROM taxones WHERE genero LIKE'%$filtro%';");

if($db->rows($sql) > 0 ) {
while ($auto = $db->recorrer($sql)) {
echo $auto['genero'], $auto['especie'];
}
} else {
echo 'No se han encontrado resultados.';
}

} else {
echo '';
}
?>

<!DOCTYPE html>
<html>
<head>
<link href="imagenes/favicon.ico" rel="shortcut icon"/>
<title>Flora montibérica | Herbario Virtual</title>
<link rel="stylesheet" href="css/jquery-ui.min.css"/>
<script src="js/jquery-2.2.0.min.js"></script>
<script src="js/jquery-ui.min.js"></script>
<script>
$('document').ready(function() {
$('#buscar').autocomplete({
source : 'ajax.php'
});
});
</script>
</head>
<body>
<form action="index.php" method="POST"></form>
<label>Buscar:</label><input type="text" name="buscar" id="buscar"></input>
<input type="submit" value="Buscar"></input>
</body>
</html>

2) Lo que tengo dentro de class.Conexion.php

<?php

class Conexion extends mysqli {

public function __construct() {
parent::__construct('localhost','root','b32_172983 43_taxones');
$this->query("SET NAMES 'utf8';");
$this->connect_errno ? die('Error con la conexion') : $x = 'Conectado';
unset($x);
}

public function recorrer($y) {
return mysqli_fetch_array($y);
}

public function rows($y) {
return mysqli_num_rows($y);
}
}
?>

3) lo que tengo de Ajax (que en realidad no lo probé aún, porque no va el buscador):

<?php

include('class.Conexion.php');

class Ajax {

public $buscador;
public function Buscar($a){

$db = new Conexion();
$this->buscador = $db->real_escape_string($a);
$sql = $db->query("SELECT * FROM taxones WHERE genero LIKE'%$this->buscador%';");

while($array = $db->recorrer($sql)){
$resultado[] = $array['genero'];
}

return $resultado;
}
}
$busqueda = new Ajax();
echo json_encode($busqueda->Buscar($_GET['term']));
?>

El problema que me ocurre:

cuando debería verse el buscador:


http://picresize.com/popup.html?images/rsz_112.jpg

se ve solo código (y es cuando introduzco el código php, por eso deduzco qeu debo tener algo mal ahí):

http://picresize.com/popup.html?images/rsz_1.jpg

¡Un saludo gente! ¡Necesito vuestra ayuda!