Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2009, 11:38
Igbar
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 16 años, 4 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>