Foros del Web » Programando para Internet » PHP »

Como eliminar datos de varias tablas a traves del campo clave de ellas

Estas en el tema de Como eliminar datos de varias tablas a traves del campo clave de ellas en el foro de PHP en Foros del Web. Hola! tengo el siguiente problema! :( Tengo una base de dato con 6 tablas en las cuales el campo clave de ellas es "nhistoria" que ...
  #1 (permalink)  
Antiguo 26/09/2008, 09:34
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 8 meses
Puntos: 2
Como eliminar datos de varias tablas a traves del campo clave de ellas

Hola! tengo el siguiente problema! :(

Tengo una base de dato con 6 tablas en las cuales el campo clave de ellas es "nhistoria" que es el numero de historia medica de empleados de una empresa.

quiero que cuando coloque la opcion de eliminar, el usuario ingrese el numero de historia medica a eliminar y el sistema elimine todos los registros de las 6 tablas que contengan ese numeor de historia que se ingrese y queira eliminar!

He revisado con JOIN pero no entiendo mucho como podria aser si mis tablas son


tabla1
idnhistoria
......

tabla2
idnhistoria
......

tabla3
idnhistoria
......

tabla4
idnhistoria
......

tabla5
idnhistoria
......

tabla6
idnhistoria
......




Por favor necesito ayuda gracias.
  #2 (permalink)  
Antiguo 26/09/2008, 10:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 46
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

$tablas=array("tabla1","tabla2","tabla3","tabla4", "tabla5");
$id="Numero ID";
foreach ($tablas as $valor){
mysql_query("DELETE FROM $valor WHERE idnhistoria='$id'",$link);
}

Espero que te sirva. Un salu2
  #3 (permalink)  
Antiguo 26/09/2008, 10:21
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

Segun se y segun indica IMATIONE no es posible hacer un JOIN para que desde una instruccion DELETE se elimine algo en multiples tablas, es requerido ejecutar uns instruccion de borrado por cada tabla.

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #4 (permalink)  
Antiguo 26/09/2008, 14:47
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

Gracias mis panas! pero no me funciona esa funcion! :(

al igual que para eliminar necesito tambien la funcion para consultar!

lo mismo para consultar! me dijeron con JOIN pero no logro hacer que me funcione!

Ayuda
  #5 (permalink)  
Antiguo 26/09/2008, 15:02
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

A ver mi pana, si lo que quieres es eliminar los 6 registros de las 6 tablas, lo que tienes que hacer son 6 delete pasando como identificador el id correspondiente, eso es todo
__________________
echo "i > u"
  #6 (permalink)  
Antiguo 26/09/2008, 15:07
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

Gracias amigos pero ya encontre la solucion se las dejo aqui por si les interesa!


<?
include("conexion.php");
$link=Conectarse();

$nhistoria=$_POST['nhistoria'];
$sql=mysql_query("delete from tabla1 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());

$sql2=mysql_query("delete from tabla2 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());

$sql3=mysql_query("delete from tabla3 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());

$sql4=mysql_query("delete from tabla4 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());

$sql5=mysql_query("delete from tabla5 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());

$sql6=mysql_query("delete from tabla6 where nhistoria='$nhistoria'")or die("La consulta fall&oacute;: " . mysql_error());
  #7 (permalink)  
Antiguo 26/09/2008, 15:08
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Como eliminar datos de varias tablas a traves del campo clave de ellas

Por la funcion no puedo responder, pero no parece tener error, segun leo la unica que si te exigiria es que tu coneccion esta asignada a la variable $link o que en su lugar pusieras tu variable de conexion y que a la variable $id le asignes el valor correspondiente a tus necesidades....

para consultar si es posible aplicarle el JOIN la sintaxis es

SELECT campos FROM tabla1 INNER JOIN tabla2 ON tabla1.campo=tabla2.campo_correspondiente WHERE condicion;

y claro que campo_correspondiente debe ser el valor que se relaciona con campo
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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 20:11.