para una sola palabra funciona
Cuando intento ingresar mas de dos palabras es ahi cuando me da el problema:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\SADU\buscador\buscar_nombres.php on line 86
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\SADU\buscador\buscar_nombres.php on line 88
MATCH() AGAINST() es lo que no funciona ahi esta el error no se si es en la consulta es una tabla usuario con campos nombre pat mat solo eso es lo que necesito que busque
Código PHP:
<?php
include("../admin/conexion.php");
?>
<html>
<head>
<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscar_nombres.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<div align="left">
<?
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];
// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
//vemos el numero de la frase
$trozos=explode(" ",$buscar);
$numero=count($trozos);
if($numero==1){
// Conexión a la base de datos y seleccion de registros
$result = mysql_query("SELECT * FROM usuario WHERE nombre LIKE '%$buscar' OR pat LIKE '%$buscar' OR mat LIKE '%$buscar' ORDER BY id_sistema ASC");
// Tomamos el total de los resultados
$total = mysql_num_rows($result);
// Imprimimos los resultados
?>
<table width="729" border="1">
<tr>
<td width="30" height="26">id</td>
<td width="184">nombre y apellido</td>
<td width="121">direccion</td>
<td width="61">Pat </td>
<td width="61">Mat </td>
</tr>
<?php
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<tr>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['id_sistema'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['ci_usuario'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['nombre'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['pat'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['mat'];?>
</a></b></td>
</tr>
</table>
</div>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}else{
$result = mysql_query("SELECT * , MATCH (nombre,pat,mat) AGAINST ('$buscar') FROM usuarios WHERE MATCH (nombre,pat,mat) AGAINST ('$buscar') ORDER BY id_sistema DESC");
// Tomamos el total de los resultados
$total = mysql_num_rows($result);
// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<table width="729" border="1">
<tr>
<td width="30" height="26">id</td>
<td width="184">nombre y apellido</td>
<td width="121">direccion</td>
<td width="61">Pat </td>
<td width="61">Mat </td>
</tr>
<tr>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['id_sistema'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['ci_usuario'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['nombre'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['pat'];?>
</a></b></td>
<td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
<?=$row['mat'];?>
</a></b></td>
</tr>
</table>
</div>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
}
?>