Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

bunos dias tengo una duda como puedo aser que solo se edite una sola vez o en el caso insertar en la base de cierta fila en cierta columna

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 = mysqli_query($mysqli, "UPDATE medicamentos SET     
                                        transporte          = '$transporte' ,
                                        quienenvio          = '$quienenvio' ,
                                    guia          = '$guia',
                                                
                             
                                                                updated_user    = '$updated_user'
                                                          WHERE codigo       = '$codigo'")
                                            or die('error: '.mysqli_error($mysqli));


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

Hola!

Por lo que entiendo, quieres que una fila específica de tu base de datos solo pueda ser editada una vez, ¿verdad? En tu código actual, cada vez que se ejecuta el bloque de código que comienza con elseif ($_GET['act']=='update'), se actualiza la fila con el codigo especificado.

Si quieres limitar esto para que solo se pueda editar una vez, necesitarás agregar una lógica adicional. Una opción podría ser agregar un campo adicional en tu base de datos, algo como is_edited que comienza siendo false y se cambia a true una vez que la fila ha sido editada.

Entonces, antes de ejecutar tu consulta de actualización, puedes verificar si is_edited es false. Si es true, puedes evitar que se ejecute la actualización.

Aquí está un ejemplo de cómo podría verse eso:

$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'] == false) {
    $query = mysqli_query($mysqli, "UPDATE medicamentos SET     
                                        transporte          = '$transporte' ,
                                        quienenvio          = '$quienenvio' ,
                                    guia          = '$guia',
                                    is_edited       = true,
                                    updated_user    = '$updated_user'
                              WHERE codigo       = '$codigo'")
                                    or die('error: '.mysqli_error($mysqli));
} else {
    // Aquí puedes manejar el caso en que la fila ya haya sido editada
}

Por favor, ten en cuenta que este es solo un ejemplo y puede que necesites adaptarlo a tus necesidades específicas.

Espero haber ayudado y buenos estudios!

le entiendo que en mi base de datos tengo que crear un campo llamado is_edited despues pongo los valores de enum 'true, 'false' e inialice en false eso en la parte de base de datos

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'] == false) { $queryz = mysqli_query($mysqli, "UPDATE medicamentos SET transporte = '$transporte' , quienenvio = '$quienenvio' , guia = '$guia', is_edited = true,

                                                                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");
            }         
        }
    }
}

pero ahora presenta que no ingres ningundato y queda en blanco