php form with mysql, I can only capture a select value in the list

0

I have a problem with showing some data in a select button, it happens that by default it always shows me the first one in the row, I made the test by entering different values in the database, it takes me but not listing it. When entering a new user as I said before I see the data "secretary mayor" who would be the one assigned with the code_cargo.

I leave the pages with which I am interacting to be able to do the process, I hope you help me I'm almost sure it's a tiny problem that can be fixed quickly. greetings to all

registrar.php

<?php 
require '../scripts/funciones.php';
if(! haIniciadoSesion() || ! esAdmin() )
{
header('Location: index.html');
}
conectar();
$usuarios = getUsuario();
desconectar();
?>

<!DOCTYPE html>

<html lang="es">

  <head>

    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Panel de Administración</title>

    <!-- Bootstrap core CSS -->

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

    <!-- Custom styles for this template -->

    <link href="../css/dashboard.css" rel="stylesheet">

    <!-- Validaciones en JavaScript -->

    <script src="validar-usuario.js" type="text/javascript"></script>

    <!-- CSS ME -->

    <link rel="stylesheet" type="text/css" href="../css/estilos.css">

  </head>

  <body>
    <?php include './menu-superior.php'; ?>
    <div class="container-fluid">
      <div class="row">

        <?php include './sidebar.php'; ?>

        <!-- <?php include './menu-lateral.php'; ?> -->

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
          
       	<h1 class="page-header">Agregar Nuevo Usuario:</h1>

  		<form action="registro.php" method="post" onsubmit="return validar();">
   
		<div class="form-group">
			<label for="email">Usuario:</label>
<input style="width: 20%;" type="text" class="form-control" id="txtUsuario" name="txtUsuario" placeholder="Ingrese Usuario" required="required"  >
	 	 </div>

		<div class="form-group">
	  	 	<label for="pwd">Clave:</label>
<input style="width: 20%;" type="password" class="form-control" id="txtClave" name="txtClave" placeholder="Ingrese Clave"required="required"   >
	    </div>

<div class="form-group">
<label for="pwd">Cargo:</label>
<select style="width: 20%;" name="cargo" size="0" >
<?php 
    $conexion = mysql_connect('localhost','root','','intranet');
    mysql_select_db('intranet',$conexion);
    $sentencia = "SELECT * FROM cargo order by cod_cargo asc";
    $query = mysql_query($sentencia);
    while ($arreglo = mysql_fetch_array($query)){ ?>
        <option value="<?php echo $arreglo ['cod_cargo']?>"><?php echo $arreglo['nom_cargo']?></option>
   <?php } ?>
</select>
</div>


<!--

  <div class="form-group">
      <label for="pwd">Cargo:</label>
     <input style="width: 20%;" type="text" class="form-control" id="txtCargo" name="txtCargo" placeholder="Ingrese Cargo" required="required"  > 
      </div> 
--> 

        <div class="form-group">
    <label for="pwd">N° de Permiso (1 para admin y 0 para usuario):</label>
    <br>
   <input style="width: 20%;" type="number" class="form-control" id="txtAdmin" name="txtAdmin" placeholder="Ingrese N° de Permiso"required="required"> 
   </div>
   
<hr>

<button type="submit" id="btnguardar" name="btnguardar" class="btn btn-primary">Guardar</button>

<input type="reset" name="btn-reset" value="Limpiar Campos" class="btn btn-primary">

		</form>

       </div>

       <?php
       if(isset($_POST['btnguardar'])){
	 	require("registro.php");

		}
       ?>

    </div>
  </div>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
  </body>
</html>      

registro.php

<?php


$conexion;

require '../scripts/funciones.php';

conectar();

// CREACION DE VARIABLES $USUARIO, $CLAVE, $CARGO Y $PERMISO PARA ALMACENAR LOS DATOS

$usuario = $_POST['txtUsuario'];
$clave = $_POST['txtClave'];
$cargo = $_POST['cargo'];
$permiso = $_POST['txtAdmin'];

// CONSULTA PARA INSERTAR LOS DATOS RECOGIDOS EN LAS VARIABLES DENTRO DEL FORMULARIO

//$insertar = mysqli_query($conexion, "INSERT INTO usuarios VALUES('".$usuario."', '".$clave."', '".$cargo."', '".$permiso."')");

$insertar = mysqli_query($conexion, "INSERT INTO usuarios VALUES ('".$usuario."','".$clave."','".$cargo."','".$permiso."')");

// EJECUCION DE CONSULTA
 	
$resultado = mysqli_query($conexion, $insertar); 

// IF PARA VERIFICAR SI EL USUARIO SE REGISTRO O NO, DE LO CONTRARIO INGRESE NUEVAMENTE LOS DATOS

if(!$resultado){
echo'<script>alert("Usuario registrado satisfactoriamente!")</script>';
echo'<script>alert("Ahora elija los permisos para el usuario.")</script>';
echo '<script>location.href ="permisos.php"</script>';
}else
{
echo '<script>alert("Error, Usuario no Registrado.")</script>';
}

mysqli_close($conexion);

?>

lista.php

<!--  VISTA  -->
<?php
require '../scripts/funciones.php';
if(! haIniciadoSesion() || ! esAdmin() )
{
header('Location: index.html');
}

conectar();
$usuarios = getUsuario();
$cargo = getLista();
desconectar();
?>

<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Panel de Administración</title>

    <!--CSS PARA DARK TABLE  --> 

     <!--   <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css"> -->

    <!-- Bootstrap core CSS -->

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->

    <link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet"> 

    <!-- Custom styles for this template -->

    <link href="../css/dashboard.css" rel="stylesheet">

    <!-- CSS ME -->

    <link rel="stylesheet" type="text/css" href="../css/estilos">

  </head>

  <body>

    <?php include './menu-superior.php'; ?>

     <div class="container-fluid"">
      <div class="row"> 
        <?php  include './sidebar.php'; ?>
        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
          <h1 class="page-header">Lista de Usuarios</h1>
          <h4 class="sub-header">Usuarios registrados dentro de la BD</h4>

          <!-- <h2 class="sub-header">Bienvenido, administrador.</h2>-->
          
        <div class="table-responsive">
            <table class="table table-striped" border="1">
              <thead>
                <tr> 
                 <!--  <th style="background-color: #fff">N° de Anexo</th> --> 
                  <th style="background-color: #fff">Nombre de Usuario</th>
                  <th style="background-color: #fff">Cargo</th>
                  <th style="background-color: #fff">Acción</th>
                  <th style="background-color: #fff">Acción</th>
                </tr> 
              </thead>
          <tbody>
            <?php 
              // $i = 1;
                foreach( $usuarios as $usuario ): ?>
                <tr>
                  <!-- <td style="background-color: #fff"><?= $i++;   ?></td> -->
                  <td style="background-color: #fff"><?= $usuario[0]?></td>
                  <td style="background-color: #fff"><?= $cargo[1]?></td>
                  <td style="background-color: #fff"><a href="editarUsuarios.php?usuario=<?= $usuario[0] ?>">Editar Datos</a></td>
                  <td style="background-color: #fff"><a href="eliminarUsuario.php?usuario=<?= $usuario[0] ?>">Eliminar Usuario</a></td>
                </tr>
           <?php endforeach ?>   
              </tbody>
            </table>
          </div> 
        </div>
      </div>
    </div>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
  </body>
</html> 

funciones.php
<?php


/* Variable Conexion global */

$conexion = null;

function conectar() /* Conexion a base de datos */
{
global $conexion; /* hace referencia a todas las variables globales */ 
$conexion = mysqli_connect('localhost','root','','intranet');  /* sentencia mysqli_connect para hacer conexion con la BD */
mysqli_set_charset ($conexion, 'utf8'); /* sentencia mysqli_set_charset establece el conjunto de caracteres predeterminados del cliente */

}






function conectarTabla()
{
global $conexion;

$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "dbtuts";

mysql_connect($dbhost,$dbuser,$dbpass) or die('cannot connect to the server'); 
mysql_select_db($dbname) or die('database selection problem');
}


function tienePermiso($usuario, $idCat)
{
global $conexion;
$result = mysqli_query($conexion, "SELECT COUNT(*) AS total FROM permisos WHERE usuario='".$usuario."' AND ID_Categoria=".$idCat); /*sentencia que sirve para hacer una consulta a la base de datos */
$row = mysqli_fetch_assoc($result);
$numero = $row['total'];
return $numero > 0;
}

/* Editar categoria por ID */

function editarCategoria($id, $nombre, $descripcion, $ruta)
{
global $conexion;
$conexion = mysqli_query($conexion, "UPDATE categorias SET categoria='".$nombre."', descripcion='".$descripcion."', ruta='".$ruta."' WHERE ID_Categoria = ".$id);
}


/* Editar Usuario  */ 

function editarUsuario($usuario, $clave, $cargo)
{
global $conexion;
$conexion = mysqli_query($conexion, "UPDATE usuarios SET usuario='".$usuario."', clave='".$clave."' , cod_cargo='".$cargo."' where usuario='".$usuario."' ");
}


function getTodasCategorias()  /*Funcion para obtener las categorias */ 
{
global $conexion;
$respuesta = mysqli_query($conexion, "select * from categorias");
return $respuesta->fetch_all(); /* sentencia fetch_all devuelve un grupo de arrays */
}


// int or numeric = .$id

// varchar = '$usuario'

function getCategoriaPorId($id)
{
global $conexion;
$respuesta = mysqli_query($conexion, "SELECT * FROM categorias WHERE ID_Categoria =  ".$id);		
return mysqli_fetch_row($respuesta);
}


/* Obtener usuario por ID */

function getUsuarioPorId($usuario)
{
global $conexion;
$respuesta = mysqli_query($conexion, "SELECT * FROM usuarios where usuario=  '$usuario'" );
return mysqli_fetch_row($respuesta);
}



/* Filtrar Categorias por Usuario */

function getCategoriasPorUser()
{
	global $conexion;
	$respuesta = mysqli_query($conexion, "SELECT C.categoria, C.descripcion, C.ruta FROM permisos P INNER JOIN categorias C ON P.ID_Categoria = C.ID_Categoria WHERE usuario =  '".$_SESSION['usuario']."'");
	return $respuesta->fetch_all();

}

/* Funcion para obtener  Usuario */

function getUsuario()
{
global $conexion;
$respuesta = mysqli_query($conexion, "SELECT * from usuarios WHERE admin<>1");
return $respuesta->fetch_all();
}
/* Funcion para obtener lista de cargos */ 

function getLista()
{
	global $conexion;
	$respuesta = mysqli_query ($conexion, "SELECT usuarios.usuario, cargo.nom_cargo from usuarios, cargo where usuarios.cod_cargo = cargo.cod_cargo");
	return mysqli_fetch_row($respuesta);
}



/*Validación de Login al hacer conexion*/

function validarLogin($usuario, $clave)  

{
	global $conexion;
	$consulta = "SELECT * FROM usuarios WHERE usuario='".$usuario."' AND clave='".$clave."'";
	$respuesta = mysqli_query ($conexion, $consulta);

	if($fila = mysqli_fetch_row($respuesta) )
	{
		session_start();
		$_SESSION['usuario'] = $usuario;
		$_SESSION['admin'] = $fila[3];
		return true;
	}
		return false; 
}


/* FUNCION PARA ELIMINAR PERMISOS EN EL USUARIO */

function eliminarPermisos($usuario)
{
	global $conexion;
	mysqli_query($conexion, "DELETE FROM permisos WHERE usuario='".$usuario."'");
}


/* FUNCION ELIMINAR USUARIOS */

function eliminarUsuario($usuario)
{
	global $conexion;
	mysqli_query($conexion, "DELETE FROM usuarios WHERE usuario='".$usuario."'");
}


/* FUNCION REGISTRAR USUARIO */ 

function registrarUsuario($usuario, $clave, $cargo, $admin)
{
	global $conexion;
	mysqli_query($conexion, "INSERT INTO usuarios VALUES('".$usuario."', '".$clave."', '".$cargo."', '".$admin."')");
}

/*
$this->conectar();
$sql = "INSERT INTO usuarios VALUES ('$usuario','$clave','$cargo','$admin')";
$sentencia = $this->m->query($sql);
if($this->m->affected_arrows > 0 ){
	echo "Se registro satisfactoriamente";
}else{
	echo "No se pudo registrar satisfactoriamente, intente nuevamente ";
} 
*/

/* FUNCION PARA ASIGNAR PERMISOS, EN VALORES USUARIOS Y ID CAT*/

function asignarPermisos($usuario, $idCat)
	{
		global $conexion;
		mysqli_query($conexion, "INSERT INTO permisos VALUES('".$usuario."', ".$idCat.")");	 	
	}


/*FUNCION PARA VERIFICAR LA CONEXION DEL ADMINISTRADOR AL SISTEMA  */

function esAdmin()
{
return $_SESSION['admin'];
}

/* FUNCION PARA INICIO DE SESIÓN */

function haIniciadoSesion()  
{
session_start();
return isset($_SESSION['usuario']);
}

/* FUNCION PARA DESCONECTAR SESIÓN */

function desconectar() 
{
global $conexion;
mysqli_close($conexion);
}







?>

BD

create database intranet;

use intranet;

create table usuarios(
usuario varchar(45) PRIMARY KEY,
clave varchar(45) NOT NULL,
cod_cargo int (5) NOT NULL,
admin boolean NOT NULL,
foreign key (cod_cargo) references cargo (cod_cargo)
);
insert into usuarios values
('admin','123','1',1);
insert into usuarios values
('Cecilia','123456','2',0),
('Martin','123456','3',0),
('Leo','123456','4',0),
('José','123456','5',0);
create table cargo(
cod_cargo int (5)  PRIMARY KEY,
nom_cargo varchar(30)
);

insert into cargo values ('1','Secretaria Alcaldia');
insert into cargo values ('2','Jefe de Gabinete');
insert into cargo values ('3','Secretaria de Administracion');
insert into cargo values ('4','Encargado de Informatica');
insert into cargo values ('5','Oficina de Partes');
insert into cargo values ('6','Encargada de OIRS');
    
asked by Manticore 22.06.2018 в 02:27
source

0 answers