Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2010, 11:59
noriyuki
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 15 años
Puntos: 0
Fallo raro al ejecutar una consulta en MySql (Autosuggest)

Hola a todos,

Recientemente me he puesto a revisar un código de Ajax que encontré hace tiempo en una web que combinaba PHP con MySql y aunque para algunas consultas funciona pefectamente en otras no me muestra nada.

El problema es el siguiente estoy intentando hacer una base de datos de películas, la tabla películas tendra Id como clave principal: int (11) y aparte de eso tiene los siguientes campos:

- Titulo_original: varchar(80) y utf8_general_ci
- Titulo varchar(80) y utf8_general_ci
- Director varchar(80) y utf8_general_ci
- Pais varchar(80) y utf8_general_ci
- Anio int(11)
- Duración int (11)
- Interpretestext y utf8_general_ci
- Sinopsis text y utf8_general_ci
- Portada varchar(50) y utf8_general_ci

El caso es que hay varios archivos que conforman el autossugest. Así que intentaré explicar lo que me falla poniendo un par de ejemplos.
En el caso de que yo intente buscar películas por titulo en mi base de datos la consulta funciona perfectamente y nada más poner la primera letra me va mostrando una lista con todas las películas que comienzen por esa letra y su director debajo, según voy acotando más la búsqueda, la lista se va acortando.

El problema lo tengo si en lugar de buscar películas que empiecen por una letra busco directores en la base de datos, se que tendría que usar SELECT DISTINCT para que lso directores que tienen más de una película no aparezcan varias veces pero he probado de las 2 formas y no hay manera de que salga nada.

El archivo de autosuggest.php es éste:
Código PHP:
<!-- AJAX AUTOSUGGEST SCRIPT -->
<
script type="text/javascript" src="lib/ajax_framework.js"></script>

<style type="text/css">
/* ---------------------------- */
/* CUSTOMIZE AUTOSUGGEST STYLE    */
#search-wrap input{width:400px; font-size:16px; color:#999999; padding:6px; border:solid 1px #999999;}
#results{width:260px; border:solid 1px #DEDEDE; display:none;}
#results ul, #results li{padding:0; margin:0; border:0; list-style:none;}
#results li {border-top:solid 1px #DEDEDE;}
#results li a{display:block; padding:4px; text-decoration:none; color:#000000; font-weight:bold;}
#results li a small{display:block; text-decoration:none; color:#999999; font-weight:normal;}
#results li a:hover{background:#FFFFCC;}
#results ul {padding:6px;}
</style>
<div id="search-wrap">
<h1>Search with Auto Suggest</h1>
<input name="search-q" id="search-q" type="text" onkeyup="javascript:autosuggest()"/>
<div id="results"></div>
</div> 
Y el que ejecuta las consultas en la base de datos es éste:
Código PHP:
<?php 
    
include('config.php'); 
    
$SQL_FROM 'peliculas';
    
$SQL_WHERE 'Titulo';
    
$searchq        =    strip_tags($_GET['q']);
    
$getRecord_sql    =    'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
    
$getRecord        =    mysql_query($getRecord_sql);
    if(
strlen($searchq)>0){
        echo 
'<ul>';
    while (
$row mysql_fetch_array($getRecord)) {?>
        <li><a href="#"><?php echo $row['Titulo_original']; ?> <small><?php echo $row['Titulo']; 
echo 
'</small></a></li>';

echo 
'</ul>';

?>
Este es el archivo que no me muestra nada al intentar mostrar los directores:
Código PHP:
<?php 
    
include('config.php'); 
    
$SQL_FROM 'peliculas';
    
$SQL_WHERE 'Director';
    
$searchq =    strip_tags($_GET['q']);
    
$getRecord_sql    =    'SELECT DISTINCT Director FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
    
$getRecord        =    mysql_query($getRecord_sql);
    if(
strlen($searchq)>0){
    echo 
'<ul>';
    while (
$row mysql_fetch_array($getRecord)) {
echo 
'<li><a href="#">';
echo 
$row['Director'];
echo 
"</a></li>";

    echo 
'</ul>';

?>

Este es el archivo de selección de la base de datos config.php
Código PHP:
<?php
$db_host
="localhost";
$db_name="peliculas";
$username="root";
$password="root";
$db_con=mysql_connect($db_host,$username,$password);
$connection_string=mysql_select_db($db_name);
mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
mysql_query('SET NAMES utf8');
?>
Cuando intento buscar el director sólo me muestra esto <ul></ul> es decir toda la parte del while no encuentra nada por lo que me imagino que será fallo mío al ejecutar la consulta.