Los parámetros de configuración de la base de datos es una buena practica tenerlos en un archivo php por separado a fin de poder modificarlos de ser necesario, también te puedes crear una archivo .ini, en este caso para el ejemplo se llama parametros.php
<?php
define ('cn_host','localhost');
define ('cn_username','root');
define ('cn_password','');
define ('cn_database','ejemplo');
?>
Para conectarme a la base de datos utilizo la funcion conectarse() la cual pide los parametros definidos anteriormente y utiliza mysqli, esta funcion devuelve la conexion a la base de datos especificada en parametros.php o un error i no se alcanza la conexion
<?php
require_once "parametros.php";
function conectarse(){
$mysql= new mysqli(cn_host, cn_username, cn_password);
if($mysql->connect_error){
echo "Error conectandose al servidor de base de datos";
echo "/n";
echo $mysql->connect_error;
exit();
}
if(!($mysql->select_db(cn_database))){
echo "Error al conectarse a la base de datos";
}
return $mysql;
}
?>
por ultimo el buscador.php, solo hacer notar que debería existir un formulario que envíe por el método POST la información de ID_name, un ejemplo básico podría ser este
Ahora si, el código que realiza la búsqueda en la base de datos según el dui proporcionado
<?php
require_once "conexion.php";
$mysqli = conectarse();
$query="select Nombre from empleado_php where ID=?";
$dato= trim($_POST['ID_name']);
$dato = filter_var($dato, FILTER_SANITIZE_STRING);
if($dato == null){
echo "debe especificar el valor del DUI a buscar";
exit();
}
//puede utilizarse try-catch(Exception $e)
if(!($stmt=$mysqli->stmt_init())){
echo "Error en stmt_init";
exit();
}
if(!($stmt->prepare($query))){
echo "Error al preparar la consulta";
exit();
}
if(!($stmt->bind_param("s",$dato))){
echo "Error anexando parametro";
exit();
}
if(!($stmt->execute())){
echo "Error al ejecutar la consulta";
exit();
}
if(!($stmt->bind_result($nombre))){
echo"Error al anexar resultado";
exit();
}
// store_result debe aparecer antes de fetch()
$stmt->store_result();
$stmt->fetch();
$count = $stmt->num_rows();
if($count!=null){
echo "Se encontraron " .$count. " resultados";
echo "";
echo "El dui " .htmlspecialchars($dato). " pertenece al empleado " .htmlspecialchars($nombre);
}
else { echo "no se encontraron resultados para el DUI " .$dato. "."; }
$stmt->close();
$mysqli->close();
?>
y si recogiéramos mas de un resultado? en ese caso utilizamos un while y mostramos los resultados, como muestres esos resultados depende de ti, en mi caso utilizare una tabla, recuerda que debes anexar este código según lo que necesites al código mostrado anteriormente
<?php
require_once "conexion.php";
error_reporting(E_ALL);
CargarDatos();
function CargarDatos(){
$query= "select * from empleado_php";
try{
if(!$mysqli = conectarse()){
die("Error al crear la conexion: " .$mysqli->connect_error);
}
if(!$stmt= $mysqli->query($query)){
die('Ocurrio un error: [' . $mysqli->error . ']');
}
if($stmt->num_rows > 0){
echo "Total de registros: " .$stmt->num_rows;
echo "";
echo'| ID | Nombre |
| '.$row->ID.' | '.$row->Nombre.' |