Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Eliminar registro con clave foranea mediante consulta

Estas en el tema de Eliminar registro con clave foranea mediante consulta en el foro de PHP en Foros del Web. Buenas tardes a todos. Necesito eliminar un registro de una tabla, al dar click para eliminar no arroja errores pero el registro no se elimina, ...
  #1 (permalink)  
Antiguo 20/03/2018, 07:32
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 9 años, 8 meses
Puntos: 4
Eliminar registro con clave foranea mediante consulta

Buenas tardes a todos.

Necesito eliminar un registro de una tabla, al dar click para eliminar no arroja errores pero el registro no se elimina, ejecute la consulta directamete desde PHPMyAdmin para verificar errores y no los hay, lo que sucede es que dicha tabla tiene una fk a otra tabla, desde PHPMyAdmin puedo destildar el checkbox "Enable foreign key checks" y ahí si lo elimina pero no se como hacer mediante consulta.

Este es el código php de borrar:

<?php session_start();

require 'config.php';
require '../functions.php';

comprobarSesion();

$conexion = conexion($db_config);
if (!$conexion) {
header('Location: ../error.php');
}

$id = limpiarDatos($_GET['id']);

if (!$id) {
header('Location: ' . RUTA . '/admin');
}

$statement = $conexion->prepare('DELETE FROM articulos WHERE id = :id');
$statement->execute(array('id' => $id));

header('Location: ' . RUTA . '/admin');

?>

La tabla a la que esta relacionada mediante fk tiene el nombre "metadatos".

Gracias por su ayuda desde ya!
__________________
Atentamente,

Guillermo Delfino
[email protected]
  #2 (permalink)  
Antiguo 20/03/2018, 10:43
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Eliminar registro con clave foranea mediante consulta

Las llaves foráneas pueden relacionar dos tablas de varias formas, lo usual es restringir, si se intenta borrar o modificar una llave foránea la operación no se completa.

Se puede definir en la llave que en vez de restringir haga la acción en cascada, es decir, que si borras un registro en una tabla se borre en la otra.

Sin embargo, esto no es tema de php y además necesitas analizar bien cómo quieres relacionar tus tablas, ya que si borras un registro a la fuerza de manera cotidiana, estarás dejando basura en la base de datos.
  #3 (permalink)  
Antiguo 20/03/2018, 11:02
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Eliminar registro con clave foranea mediante consulta

Gracias por tu respuesta, tengo 3 consultas en las cuales elimina primero el registro de la tabla metadatos, luego de la tabla de comentarios y por último el registro de la tabla comentarios, gracias a tu ayuda me di cuenta que estaba haciendo la cascada al revés, lo cambié y borre primero en la tabla metadatos, luego comentarios y por último el artículo y funcionó perfectamente.

Muchas gracias por tu ayuda
__________________
Atentamente,

Guillermo Delfino
[email protected]

Etiquetas: clave, mediante, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:55.