PHP - crear buscador php

 
Vista:
Imágen de perfil de jhon
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por jhon (5 intervenciones) el 19/12/2019 17:05:59
Necesito por favor arreglar este buscador para que me funcione, el código lo encontré y me parece interesante por la forma como según funciona, pero al ponerlo no hace nada, solo me muestra el código nuevamente en el navegador, según me dicen debo poner las variables post que recojan información, pero no se mucho de php para poder arreglarlo, entiendo el concepto que debo crear una variable que recoja la informacion del formulario pero no se como adaptarlo, quisiera por favor entender el codigo y me ayuden a que funcione, la base se llama academ, la tabla login y los campos de momento user, email, deberia reconocer la palabra a buscar en html un input y mostrarme los campos de la busqueda en html. que el codigo php quede independiente del html.

Adjunto lo que tengo.

form
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!--debe ser en paginas independientes el html y php--->
<tr>
        <form method="post" action="../../Adminback/buscar.php" >
            <td align="center">
                <input type="text" name="busqueda" value="" />
            </td>
        </tr>
 
<?php
//cadena de conexion
mysqli_connect("localhost","root","");
// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
if ($busqueda<>''){
  //CUENTA EL NUMERO DE PALABRAS
  $trozos=explode(" ",$busqueda);
  $numero=count($trozos);
  if ($numero==1) {
    //SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
    $cadbusca="SELECT  REFERENCIA, user FROM academ WHERE VISIBLE =1
      AND email LIKE  '%$busqueda%' OR user LIKE  '%$busqueda%' LIMIT 50";
  } elseif ($numero>1) {
    //SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
    //busqueda de frases con mas de una palabra y un algoritmo especializado
    $cadbusca="SELECT  REFERENCIA, user, MATCH ( user, email )
      AGAINST (  '$busqueda' ) AS Score FROM academ WHERE
      MATCH ( user, email ) AGAINST (  '$busqueda' ) ORDER  BY Score DESC LIMIT 50";
  }
  $result=mysqli("academ", $cadbusca);
  While($row=mysqli_fetch_object($result))
  {
    //Mostramos los titulos de los articulos o lo que deseemos...
    $referencia=$row->REFERENCIA;
    $titulo=$row->TITULO;
    echo $referencia." - ".$titulo."<br>";
  }
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Bryan Alexander
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por Bryan Alexander (45 intervenciones) el 19/12/2019 18:44:44
Con gusto te ayudo pero por favor adjunta la estructura de tu DB a utilizar en el ejemplo, que es lo que estas buscando realmente porque en el query que lanzas quieres hacer match con el correo pero en tu imagen estas poniendo la palabra Administrador, por lo tanto no me queda claro que es lo que buscas como resultado final, me cuentas si puedes describir que es lo que necesitas y con gusto te ayudo compañero!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jhon
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por jhon (5 intervenciones) el 25/12/2019 00:22:35
gracias, la idea es crear un buscador que me traiga d ela base de datos los campos a una tabla y los muestre, la BD es muy básica simplemente tienes unos cuantos campos donde se encuentra el nombre del administrador también.
Muchas gracias por tu ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
-- phpMyAdmin SQL Dump
-- version 4.9.2
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 25-12-2019 a las 00:16:25
-- Versión del servidor: 10.4.10-MariaDB
-- Versión de PHP: 7.1.33
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- Base de datos: `academ`
--
 
-- --------------------------------------------------------
 
--
-- Estructura de tabla para la tabla `login`
--
 
CREATE TABLE `login` (
  `id` int(11) NOT NULL,
  `user` varchar(250) NOT NULL,
  `password` varchar(250) NOT NULL,
  `email` varchar(250) NOT NULL,
  `pasadmin` varchar(250) NOT NULL,
  `rol` int(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Volcado de datos para la tabla `login`
--
 
INSERT INTO `login` (`id`, `user`, `password`, `email`, `pasadmin`, `rol`) VALUES
(1, 'Administrador', '', 'admin@gmail.com', '123456', 1),
(2, 'Joseph', '12345', 'josephg059@gmail.com', '', 2),
(4, 'joseph', '12345', 'joseph@gmail.com', '', 2),
(5, 'paul', '1234', 'paul@gmail.com', '', 2);
 
--
-- Índices para tablas volcadas
--
 
--
-- Indices de la tabla `login`
--
ALTER TABLE `login`
  ADD PRIMARY KEY (`id`);
 
--
-- AUTO_INCREMENT de las tablas volcadas
--
 
--
-- AUTO_INCREMENT de la tabla `login`
--
ALTER TABLE `login`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Bryan Alexander
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por Bryan Alexander (45 intervenciones) el 26/12/2019 23:23:20
Bueno lo hice con dos archivos uno que es el index.html y el otro es services.php, te los dejo por acá, tambien cambie un poco la base de datos puesto que el id esta demas, el id debe de ser el email ya que no deseas que eso se repita nunca vale, acá te dejo todo, guardalo en una misma carpeta y te corre a la perfección.

INDEX.HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="studio_style.css">
 
    <title>Buscador</title>
  </head>
  <body>
    <div class="container-fluid">
      <header class="content__title">
        <h1 class="text-center">Buscador</h1>
        <h6 class="text-center">Ejercicio La web del programador</h6>
      </header>
        <div class="row text-center" style="margin-top: 40px;">
          <div class="col">
            Search member:
          </div>
        </div>
        <div class="row text-center">
          <div class="col">
            <input type="text" id="member" placeholder="Member...">
          </div>
        </div>
        <div class="row text-center">
          <div class="col">
            <button type="button" style="margin-top: 20px;" class="btn btn-primary" id="buscar">Buscar</button>
          </div>
        </div>
          <div class="row">
            <div class="col" id="respuesta">
              Resultado...
            </div>
          </div>
    </div><!-- FIN DIV CONTAINER-FLUID-->
 
 
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <!--<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>-->
    <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <script type="text/javascript">
      $("#buscar").click(function(){
        buscar();
      });
 
      function buscar(){
        //alert('Buscar');
 
        var email = $('#member').val();
        $.ajax({ //Inicio del Ajax
        contentType: "application/x-www-form-urlencoded",
        type: "POST",
        url: "services.php",
        data: ({
            option: 'search_member',
            email
        }),
        dataType: "json",
        success: function(r) {
            if(r.info != ''){
                $("#respuesta").html(r.info);
                //alert(r.botones_menu);
            }else{
                alert('No existe el usuario!');
            }
 
        }
    });//Fin del Ajax
      }
    </script>
  </body>
</html>

services.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
 
	session_start();
	date_default_timezone_set('America/Guatemala');
 
	$servername = "localhost";
	$username = "root";
	$password = "12345";
	$db 	  = "buscador_lwp";
 
	// Create connection
	$conn = mysqli_connect($servername, $username, $password, $db);
 
	// Check connection
	if ($conn->connect_error) {
	    die("Connection failed: " . $conn->connect_error);
	}else{
		//echo "Connected successfully";
		//error_log('TESTING');
	}
 
	if(isset($_POST['option'])){
		$option = $_POST['option'];
 
		switch ($option) {
			case 'search_member':
				search_member();
				break;
		}
	}
 
	function search_member(){
		global $conn;
		$email = $_POST['email'];
		$jsondata = array();
 
		//Query para buscar en la DB
		$query = "SELECT user,pass,passadmin,rol
				  FROM login
				  WHERE email LIKE '$email'";
 
		//ejecutar el query en la DB
		$query_exec = mysqli_query($conn, $query);
		$n = mysqli_num_rows($query_exec);
 
		if($n > 0){
			$query_result = mysqli_fetch_array($query_exec);
 
			$user = $query_result['user'];
			$pass = $query_result['pass'];
			$rol = $query_result['rol'];
 
			$resultado = "<div class='col-4'>
							Usuario: $user
						  </div>
						  <div class='col-4'>
							Password: $pass
						  </div>
						  <div class='col-4'>
							Rol: $rol
						  </div>
						";
 
		}else{
			$resultado = "No se tiene información!";
		}
 
 
		$jsondata['info'] = $resultado;
		echo json_encode($jsondata);
	}
 
?>

Código de la DB:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SET FOREIGN_KEY_CHECKS=0;
 
-- ----------------------------
-- Table structure for login
-- ----------------------------
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
  `email` varchar(80) NOT NULL,
  `user` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `passadmin` varchar(255) DEFAULT NULL,
  `rol` int(11) NOT NULL,
  PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-- ----------------------------
-- Records of login
-- ----------------------------
INSERT INTO `login` VALUES ('admin@gmail.com', 'Administrador', '827ccb0eea8a706c4c34a16891f84e7b', null, '1');
INSERT INTO `login` VALUES ('josephg059@gmail.com', 'Joseph', '827ccb0eea8a706c4c34a16891f84e7b', null, '2');
SET FOREIGN_KEY_CHECKS=1;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jhon
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por jhon (5 intervenciones) el 29/12/2019 01:10:51
hola, Bryan hice lo que dices pero no funciona tu codigo, creee todos los archivos en un solo directorio, los nombre como los enviaste pero no me funcionan, tampoco arroja un error simplemente no hace ninguna acción :(, podría ser porque lo estoy probando con xampp locamente. puse los correos que están en la base y también cualquier información errónea en el buscador pero no funciona.
error-buscador
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Bryan Alexander
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por Bryan Alexander (45 intervenciones) el 30/12/2019 15:29:33
Nesesito saber si te da algún error, deberia de aparecer algo en el PHP_error log o si no sabes donde esta tu log de errores de PHP puedes darle click derecho a la pantalla y darle click en inspeccionar elemento, en la parte de red allí deberiamos de poder ver errores, pusiste tus datos en la conección de la base de datos??? porque lo que va allí es lo que yo uso para conectarme a mi maquina local, es decir, no se si tu le tienes password a tu base de datos si no haz cambiado esos datos, ese es el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jhon
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

crear buscador php

Publicado por jhon (5 intervenciones) el 03/01/2020 21:26:11
Gracias,, ya pude hacer que funcionara. +10
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear buscador php

Publicado por Juan Carlos (1 intervención) el 01/01/2020 19:16:31
Buen día, si aun no conseguiste hacer que funcione el buscador puedo ayudarte.
Este es mi correo: [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar