Foros del Web » Programando para Internet » PHP »

Buscador ISBN no muestra todo

Estas en el tema de Buscador ISBN no muestra todo en el foro de PHP en Foros del Web. Hola a todos, he creado un sencillo buscador que accede a la información de una tabla Mysql que tiene 3 campos. El caso es que ...
  #1 (permalink)  
Antiguo 15/10/2009, 11:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Buscador ISBN no muestra todo

Hola a todos, he creado un sencillo buscador que accede a la información de una tabla Mysql que tiene 3 campos. El caso es que funciona correctamente pero no me muestra la mayoría de los terminos que pongo. Por ejemplo me busca en un libro llamado "Antes del anochecer" y si pongo "anochecer" si lo encuentra pero si pongo "Antes" no. Tampoco funciona si busco por ejemplo "Acoso" de un libro llamado "El Acoso". Es bastante raro.

El formulario de busqueda es el siguiente:

<form name="form1" method="get" action="buscador(PUNTO)php">
<label></label>
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="71">&nbsp;</td>
</tr>
<tr>
<td><div align="center">
<input name="termino" type="text" class="textos" size="28" />
</div></td>
</tr>
<tr>
<td height="32"><div align="center">
<input name="radiobutton" type="radio" value="Titulo" />
T&iacute;tulo
<input name="radiobutton" type="radio" value="Autor" />
Autor
<input name="radiobutton" type="radio" value="ISBN" />
ISBN</div></td>
</tr>
<tr>
<td><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="113">&nbsp;</td>
<td width="87"><input name="submit" value="Buscar"></td>
</tr>
</table></td>
</tr>
</table>
<label><br />
<br />
</label>
<label> <br />
</label>
</form>


Y el fichero buscador(PUNTO)php el siguiente:

<?
$sql_server = "localhost";
$sql_user = "XXXXX";
$sql_pass = "XXXXX";
$sql_db = "XXXXX";

$cont = mysql_connect($sql_server, $sql_user, $sql_pass);
if($_GET['start'] == "") $inicio = 0; else $inicio = $_GET['start'];

$palabra_busqueda = $_GET['termino'];

if( strlen($palabra_busqueda) < 4) {
$msg = "Por favor introduzca al menos tres carácteres para su búsqueda";
}else{

$array_busqueda = split(" ",$palabra_busqueda);

$SQL_links = "SELECT link_name, link_desc, link_url FROM `inl_links` WHERE 1";

foreach($array_busqueda as $val){
$SQL_links .=" and `link_name` like '% $val %' or link_desc like '% $val %' ";
}

$SQL_links .="order by link_name Limit $inicio,10";

$linksporcategoria = mysql_db_query($sql_db,$SQL_links);

$SQL_links_total = "SELECT link_id FROM `inl_links` WHERE `link_name` like '% $palabra_busqueda %' or link_desc like '% $palabra_busqueda %'";

$linksporcategoria_total = mysql_db_query($sql_db,$SQL_links_total);
}
?>
<html>
<head>
<title>Sin titulo</title>
</head>
<body>
<table width="100" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td><table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="23">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="27">&nbsp;</td>
<td width="673"><table align="center" border="0" cellpadding="0" cellspacing="1" width="670" bgcolor="#000000">
<tr>
<td width="685" bgcolor="#FFFFFF"><table width="630" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><table width="630" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><b><br />Se han encontrado <? echo mysql_num_rows($linksporcategoria_total); ?> libro/s con la palabra </b></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><?
if( strlen($palabra_busqueda) < 4) {
echo $msg;
}else{
while($row = mysql_fetch_row($linksporcategoria)){
echo "<A class=\"enlaces\" href=\"$row[2]\">$row[0]</a><br>
<SPAN class=\"link-desc\">$row[1]</span><br>
<span class=\"vinculos\">$row[2]</span><br><br>"; ?> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?
}
}
?>
</table></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>

</table></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 15/10/2009, 12:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Buscador ISBN no muestra todo

Lo que sucede es que en la consulta a la base de datos tienes espacio antes y despues de la variable. "% $val %" y debe ser "%$val%", sin espacios.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/10/2009, 14:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Buscador ISBN no muestra todo

Muchisimas gracias abimaelrc, llevaba todo el día de hoy buscando la solución y simplemente con eso me funciona perfecto. Muchisimas gracias por la rapidez y la solución.
  #4 (permalink)  
Antiguo 15/10/2009, 15:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Buscador ISBN no muestra todo

Hola nuevamente, resulta que ahora al mostrar los resultados, no me pagina bien, y muestra primero los resultados del 2 al 10 y luego me viene este texto en lugar de arriba abajo del todo y a continuación el primer registro.

Se han encontrado <? echo mysql_num_rows($linksporcategoria_total); ?> libro/s con la palabra <? echo $palabra_busqueda ;?>


He estado buscando información pero no consigo corregirlo, creo que es algo que tiene que ver con: if($_GET['start'] == "")$inicio = 0;else $inicio = $_GET['start']; pero no estoy seguro.

Muchas gracias de antemano, pongo este problema aqui ya que aparece todo el hilo anterior.
  #5 (permalink)  
Antiguo 15/10/2009, 15:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Buscador ISBN no muestra todo

Es que no tienes un link que tenga la variable start y cada vez que lo trata de leer, va a leerlo desde el principio. Debes crear un link que tenga por ejemplo
Código PHP:
Ver original
  1. <a href="direccion.php?start=<?php echo $inicio+10;?>">link</a>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 16/10/2009, 04:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Buscador ISBN no muestra todo

Gracias, al final lo he podido resolver separando en 2 tablas, por una parte lo de los enlaces encontrados y por otra los enlaces.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:35.