Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2019, 15:57
elpre
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
actualizar BD desde checklist

Buenas noches, tengo algún problemilla con la actualización de una base de datos en los que le paso los valores mediante un checklist:
En la BD tengo una tabla que se llama prefijos_perfiles con estas columnas:
ID, Usuario, Perfil, Permiso, Ver, Crear, Modificar, Borrar. Con esta tabla controlo los permisos que tienen los usuarios según el tipo de usuario que es.
Tengo esto:
Código PHP:
<form class="form-horizontal" action="permisos_perfiles/modificarPermisosPerfiles.php" method="POST">
<table class="table table-bordered mb-0 ">
<?php
$sentencia
="SELECT * FROM permisos_perfiles WHERE idusuario IN (SELECT idUsuario FROM usuarios WHERE idEmpresa='".$_SESSION['idEmpresaElegida'] ."') "
$resultado $conexion->query($sentencia) or die (mysqli_error($conexion));
while(
$filas=$resultado->fetch_array())
{
//Creamos las variables para poner si está activo o no el checkbox
$checkedVer $filas['ver'] == '1' 'checked' '';
echo 
"<tr>";
echo 
"<td>";
?>
<input type="text" name="id[]" value="<?php echo $filas['idPermisos_Perfiles']; ?>" >
<?php
echo "</td>";
//Ponemos un checkbox en función de lo que está activado o desactivado en la BD
echo "<td>";?> <input type="checkbox" name="activo[]" value="<?php echo $filas['activo']; ?><?php echo $checkedActivo?>  >
<?php
echo "</td>";
 echo 
"</tr>";
}
?>
</table>
<button class="btn sa-btn-primary" type="submit"><i class="fa fa-save"></i>Modificar Permisos Perfiles</button>
</form>
Y ahora en el archivo modificarPermisosPerfiles.php tengo esto:
Código PHP:
<?php

    
include '../conexion.php';
    for (
$i 0$i count($_POST['activo']); $i++) {
        if ((
$_POST['activo'][$i])==false) {
            
$_POST['activo'][$i] = '0';
            echo 
$_POST['id'][$i];
            echo 
$_POST['activo'][$i];
            echo 
'<script>';
                echo 
'alert("bbbbb");';
            echo 
'</script>';
        }
        else{
            
$_POST['activo'][$i] = '1';    
        }    

        
$sentecia="UPDATE permisos_perfiles SET activo='{$_POST['activo'][$i]}' WHERE idPermisos_Perfiles='{$_POST['id'][$i]}' ";

        
$conexion->query($sentecia) or die ("Error al actualizar datos de permisos perfiles: ".mysqli_error($conexion));
    }

    echo 
'<script>';
        echo 
'alert("Datos actualizados con exito!!");';
        echo 
'window.location.href="../inicio.php?cargar=PermisosPerfiles";';
    echo 
'</script>';
?>
No se me ha ocurrido otra forma de hacer el update por lo que hago un update por cada fila que tengo en la primera sentencia.
Tengo el alert("bbbbb") puesto apra ver si me entra en ese if pero no sé por qué pero no me entra.

A ver si podéis echarme una mano

Gracias y un saludo

PD: Edito comentando que entiendo que lo que mando es lo que está en la BD y no la interacción del check de si está o no marcado, y eso es precisamente lo que quiero saber

Última edición por elpre; 07/01/2019 a las 17:09 Razón: explicación