Mostrar registros disponibles en la base de datos con php
Hola amigos!
Primero que nada decir que soy ultra novato programando llevo un par de meses aprendiendo y no se si la pregunta será muy básica :P, les cuento tengo un sistema donde se ingresa el nombre, apellido e IP ,este ultimo se selecciona por un combo select obtenido de la base de datos, por medio de un formulario, mi idea es eliminar las IP a medida que se utilicen para así no tener duplicidad. Ojala me puedan orientar. Gracias!
Editado
Primero que nada decir que soy ultra novato programando llevo un par de meses aprendiendo y no se si la pregunta será muy básica :P, les cuento tengo un sistema donde se ingresa el nombre, apellido e IP ,este ultimo se selecciona por un combo select obtenido de la base de datos, por medio de un formulario, mi idea es eliminar las IP a medida que se utilicen para así no tener duplicidad. Ojala me puedan orientar. Gracias!
<?php include ('conexion.php'); error_reporting(E_ALL ^ E_NOTICE); $resultado = mysqli_query($conexion, ("SELECT * FROM listado_ip")); $sql = "INSERT INTO funcionario (nombre, apellido, listado_ip_id) VALUES('".$_POST['nombre']."','".$_POST['apellido']."','".$_POST['ip']."')"; $resultado2 = mysqli_query($conexion, $sql); $resu = mysqli_query ($conexion, ("SELECT * FROM funcionario INNER JOIN listado_ip ON funcionario.listado_ip_id = listado_ip.id")); $disponible = mysqli_query ($conexion, "SELECT * FROM funcionario RIGHT JOIN listado_ip ON funcionario.listado_ip_id = listado_ip.id where funcionario.id is NULL"); ?> <!--CUERPO HTML--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="estilo.css"> <title>Inventario de IP</title> </head> <body> <div class="container col-md-5"> <header> <br> <center> <h1>Asignación de IP</h1> </center> </header> <div class="login-page"> <div class="form"> <form class="login-form"action="index.php" method="post" name=""> <div class="form-group"> <input class="form-control" type="text" name="nombre" placeholder="Nombre:"> </div> <div class="form-group"> <input class="form-control" type="text" name="apellido" placeholder="Apellido:"> </div> <div class="form-group"> <select class="form-control" name="ip"> <?php while($consulta = mysqli_fetch_assoc($resultado)) { ?> <option value='<?php echo $consulta['id'] ?>' ><?php echo $consulta['ip']?></option> <?php } ?> </select> </div> <center> <button type="submit" class="btn btn-success">Registrar</button> <a href="http://localhost/pruebas/ipes/busqueda.php" class="btn btn-success">Buscar</a> </center> <br> <div class="container"> <div class="error bg-warning"> <?php if(isset ($_POST ['nombre'])){ $nombre = $_POST['nombre']; $apellido = $_POST ['apellido']; $campos = array(); if($nombre == "") { array_push($campos, "ERROR: Ingrese Nombre <br>"); } if($apellido == "") { array_push($campos, "ERROR: Ingrese Apellido <br>"); } if(count($campos) > 0){ for($i = 0; $i < count($campos); $i++){ echo$campos[$i]; } }else{ echo"Datos Correctos"; } } ?> </div> </div> </form> </div> </div> </div> <script src="js/jquery-3.3.1.min.js" ></script> <script src="js/bootstrap.min.js"></script> </body> </html>
Editado
0
Puntos
Puntos
1000
Visitas
Visitas
4
Resp
Resp
Por Ossama hace 72 meses
Principiante
Respuesta #1
hola, yo lo haría mucho mas sencillo, crearía otra columna mas en la tabla listado_ip llamada "estado" por ejemplo con valor predeterminado 0 (disponible)
para sacar las ip disponibles tienes que cambiar la consulta de esta manera:
después al insertar el funcionario marcar esa ip como 1 (no disponible), es decir después de esto:
salu2
para sacar las ip disponibles tienes que cambiar la consulta de esta manera:
$resultado = mysqli_query($conexion, ("SELECT * FROM listado_ip WHERE estado=0"));
después al insertar el funcionario marcar esa ip como 1 (no disponible), es decir después de esto:
$sql = "INSERT INTO funcionario (nombre, apellido, listado_ip_id) VALUES('".$_POST['nombre']."','".$_POST['apellido']."','".$_POST['ip']."')";haces algo como esto:
//ACTUALIZAR REGISTRO $ipusada=$_POST['ip']; $update = mysqli_query($conexion,"UPDATE listado_ip SET estado=1 WHERE ip=$ipusada") or die(mysqli_error());de esta manera para el siguiente filtrado esa ip no estará disponible por estar marcada en 1 (en uso)
salu2
1
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #2
sorry cambie el título para ser mas descriptivo :P
0
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #3
disculpa, cuando haces el update tienes que pasar el estado=1 (ip usada)
eh actualizado mi primera respuesta que me acabo de dar cuenta que faltó eso
eh actualizado mi primera respuesta que me acabo de dar cuenta que faltó eso
0
Puntos
Puntos
Por alber hace 72 meses
Administrador
Respuesta #4
Muchas gracias lo intentaré
0
Puntos
Puntos
Por Ossama hace 72 meses
Principiante