Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2015, 11:35
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Buscador que solo reconoce de dos registros iguales de la tabla usuarios uno de ellos

Hola.

Estoy haciendo un buscador con php para buscar personas o usuarios en el que hay un registro (registro22) que si busco por nombre y apellidos juntos jamás aparece. Sin embargo acabo crear otro usuario nuevo (registro23) copiando por ejemplo un usuario cualquiera que si aparece siempre, le pongo los mismos datos que el usuario que no aparece (registro22) y ahora si hago la búsqueda por nombre y apellidos el usuario nuevo (registro23) que tiene ahora exactamente todos los datos que en anterior, menos id_usuario pues si aparece y el anterior sigue sin aparecer. Incluso acabo de crear otro usuario nuevo con el mismo nombre y apellidos y también aparece junto al registro23
sin embargo el anterior nada.

¿Qué problema puede ser?

La búsqueda la hago de la siguiente manera:

Código HTML:
Ver original
  1. <!-- Aquí formulario de búsqueda -->
  2.         <form action="usuarios.php?source=buscar_usuarios" method="post" name="buscar_usuarios" class="form-busqueda">
  3.             <input type="text" name="busqueda" placeholder="Buscar amigos" required >
  4.             <input type="submit" name="buscar" value="Buscar" class="submit-busqueda">
  5.         </form>
  6.         <!-- Fin formulario de búsqueda -->

Código PHP:
Ver original
  1. <?
  2. if(isset($_POST['buscar'])){       
  3.     $busqueda = $_POST['busqueda'];
  4.     $nombre = $_POST['nombre'];
  5.     $apellidos = $_POST['apellidos'];
  6.     $usuario = $_POST['usuario'];
  7.    
  8.     $query = "SELECT * FROM usuarios WHERE usuario LIKE '%$busqueda%'|| CONCAT(nombre,' ', apellidos) LIKE '%$busqueda%'";
  9.    
  10.     $usuarios_query = mysqli_query($conexion, $query);
  11.     if(mysqli_num_rows($usuarios_query) == 0){
  12.         echo '<p class="error">No hay ningún resultado</p>';
  13.         echo "<p>Estoy buscando: " .$busqueda."</p>";
  14.     }
  15.     else{
  16.         echo "<article>";
  17.         echo "<ul>";
  18.         while($fila=mysqli_fetch_assoc($usuarios_query)){
  19.             $nombre = $fila['nombre'];
  20.             $apellidos = $fila['apellidos'];
  21.             $usuario = $fila['usuario'];
  22.             $id_usuario = $fila['id_usuario'];
  23.             $imagen_perfil = $fila['imagen_perfil'];
  24.            
  25.             echo '<li><img src="img/'.$imagen_perfil.'" class="mini-perfil"><span class="datos-usuario"><a href="usuarios.php?id='.$id_usuario.'" accesskey="m" title="'.$usuario.'">Usuario: '.$usuario.' - '.$nombre.' '.$apellidos.'</a></span></li>';//Aquí añadir imagen pequeña. 
  26.         }
  27.         echo "</article>";
  28.         echo "<ul>";
  29.     }  
  30. }
  31. ?>

Y en la base de datos como comentaba anteriormente los registros 22 y 23 les he puesto los mismos datos y solo aparece siempre el 23 o incluso el 24 solo poniendo los mismos nombres y apellidos.

¿Cual podría ser el error? Por ahora solo estoy haciendo pruebas y antes de presentar la web online me gustaría saber si eso puede volver a pasar o saber cual es el problema tan extraño, si es algo de el envío de datos o un error de la tabla sql.

Saludos.