Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

cree un campo en mi base con enum('false','true') en mi codigo cuando cumple la condicion logro editar pero cuando deveria cambiar a false para culminar y ya no me permita editar. perosigue editando

elseif ($_GET['act']=='update') { if (isset($_POST['Guardar'])) { if (isset($_POST['codigo'])) {

            $codigo  = mysqli_real_escape_string($mysqli, trim($_POST['codigo']));
           
            $transporte     = mysqli_real_escape_string($mysqli, trim($_POST['transporte']));
            $quienenvio     = mysqli_real_escape_string($mysqli, trim($_POST['quienenvio']));
            $guia     = mysqli_real_escape_string($mysqli, trim($_POST['guia']));

         
            $updated_user = $_SESSION['id_user'];

}

$query_check = mysqli_query($mysqli, "SELECT is_edited FROM medicamentos WHERE codigo = '$codigo'"); $check_result = mysqli_fetch_array($query_check); if ($check_result['is_edited'] == true) { $query = mysqli_query($mysqli, "UPDATE medicamentos SET transporte = '$transporte' , quienenvio = '$quienenvio' , guia = '$guia', is_edited = 'false',

                                                                updated_user    = '$updated_user'
                                                          WHERE codigo       = '$codigo'")
                                            or die('error: '.mysqli_error($mysqli));
} else {

header("location: ../../main.php?module=ADMINISTRACION CHUQUISACA&alert=1"); }

            if ($query) {
              
                header("location: ../../main.php?module=ADMINISTRACION CHUQUISACA&alert=2");
            }         
        }
    }


elseif ($_GET['act']=='delete') {
    if (isset($_GET['id'])) {
        $codigo = $_GET['id'];
  
        $query = mysqli_query($mysqli, "DELETE FROM medicamentos WHERE codigo='$codigo'")
                                        or die('error '.mysqli_error($mysqli));

        if ($query) {
 
            header("location: ../../main.php?module=ADMINISTRACION CHUQUISACA&alert=3");
        }
    }
}
1 respuesta

Hola,

El problema puede estar en la forma en que estás comprobando el valor de is_edited. En tu consulta, estás comprobando si $check_result['is_edited'] es igual a true. Sin embargo, en tu base de datos, is_edited es un campo de tipo ENUM con valores 'false' y 'true', que son cadenas de texto, no booleanos.

Por lo tanto, tu comprobación debería ser $check_result['is_edited'] == 'true' en lugar de $check_result['is_edited'] == true.

Aquí está el código corregido:

$query_check = mysqli_query($mysqli, "SELECT is_edited FROM medicamentos WHERE codigo = '$codigo'");
$check_result = mysqli_fetch_array($query_check);
if ($check_result['is_edited'] == 'true') {
    $query = mysqli_query($mysqli, "UPDATE medicamentos SET     
                                    transporte          = '$transporte' ,
                                    quienenvio          = '$quienenvio' ,
                                    guia                = '$guia',
                                    is_edited           = 'false',
                                    updated_user        = '$updated_user'
                                    WHERE codigo        = '$codigo'")
                                    or die('error: '.mysqli_error($mysqli));
}

Espero que esta solución te ayude a resolver tu problema. Recuerda que es importante entender la diferencia entre los tipos de datos en tu base de datos y cómo los maneja tu lenguaje de programación. En este caso, 'true' y 'false' son cadenas de texto en tu base de datos, no booleanos.

Espero haber ayudado y buenos estudios!