Foros del Web » Programando para Internet » PHP »

Eliminar de varias tablas mediante un solo formulario

Estas en el tema de Eliminar de varias tablas mediante un solo formulario en el foro de PHP en Foros del Web. Buenas Tengo un programa hecho en PHP sencillo, consistente en una agenda que inserta clientes y productos y los elimina, la única condición es que ...
  #1 (permalink)  
Antiguo 11/04/2011, 08:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 26
Antigüedad: 16 años, 4 meses
Puntos: 1
Exclamación Eliminar de varias tablas mediante un solo formulario

Buenas

Tengo un programa hecho en PHP sencillo, consistente en una agenda que inserta clientes y productos y los elimina, la única condición es que solo exista una función para insertar con una sola query (ya sea para producto o para cliente) y lo mismo para eliminar.

El programa está hecho de tal forma que para eliminar, existen dos formularios diferentes (no para cliente y otro para producto) que recoge los datos con listas múltiples.

La pregunta es: ¿Como hago que funcione el programa, con un solo formulario para ambos? se supone que según los registros que señales en ambas listas, las tiene que reconocer el sistema para eliminarlos en sus respectivas tablas mediante la función eliminar.

Muestro la función eliminar actualmente para que sirva de guia:

Código PHP:
function eliminar($codigo$tabla)
{
    foreach(
$_POST['codigo'] as $codigo)
    {
       
mysql_query("DELETE FROM $tabla WHERE cod = $codigo ");
    }

  #2 (permalink)  
Antiguo 13/04/2011, 00:34
 
Fecha de Ingreso: abril-2011
Mensajes: 7
Antigüedad: 13 años
Puntos: 0
Respuesta: Eliminar de varias tablas mediante un solo formulario

Una consulta la funcion eliminar es tuya o ya te la dieron??? porque podrias pasarle mas parametros y con un solo formulario podrias hacerlo, los parametros que deberias pasar serian codigo1,tabla1, codigo2,tabla2 y solucionado, si no tenes posibilidad de modificar la funcion llamala 2 veces pasandole los datos de cada campo (cliente, producto). Me explico????
  #3 (permalink)  
Antiguo 13/04/2011, 11:26
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Eliminar de varias tablas mediante un solo formulario

Hola imerburu!!!

Hay una forma mas simple de realizar tu consulta de eliminación, tomando en cuenta parte de lo que comenta ircnick de agregarle más parametros especificos a tu funcion de eliminar().

La forma mas sencilla de hacerlo es desde la creacion de tus tablas, claro siempre y cuando estas esten relacionadas, al momento de poner la llave foranea en ellas colocar la sentencia ON DELETE CASCADE, esto quiere decir que eliminarias los datos relacionados a tu tabla padre que lleven el ID del registro que quieras eliminar en todas las tablas relacionas a la tabla padre. Por asi decir:

tabla_padre
Idpadre_______campo1_______campo2_______campo3
__52_________Mexico_________123________123
__53_________EE.UU__________321________654
__54_________Guatemala______159________753

tabla_hija_1
IdhijoUno_________campo1_________campo2_________campo3_________Idpadre
____1_________Quintana Roo__________123___________123___________52
____2_________Yucatan_______________456___________789___________52
____3_________Texas_________________186___________268___________53
____4_________Florida _______________756___________472___________53


luego en tu funcion quedaria asi:

Código PHP:
function eliminar($idpadre,$conexion)
{
         
$delete=mysql_query("delete from tabla_padre where Idpadre=52",$conexion);

          if
$delete)
         { echo 
"se eliminaron todos los datos"; }


Cuanto tu ejecutes tu funcion en tu codigo:

Código PHP:
eliminar(53,$tucnoexionDB); 
y veas el resultado directamente en tu wamp, xamp consolo mysq quedaria asi:

tabla_padre
Idpadre_______campo1_______campo2_______campo3
__52_________Mexico_________123________123
__54_________Guatemala______159________753

tabla_hija_1
IdhijoUno_________campo1_________campo2_________campo3_________Idpadre
____1_________Quintana Roo__________123___________123___________52
____2_________Yucatan_______________456___________789___________52

Espero que sea lo que estas buscando. Aqui te dejo un link sobre el ON DELETE CASCADE:
http://dev.mysql.com/doc/refman/5.5/...nstraints.html

SAludos!!!
__________________
Solo se... que no se nada!!! 0_o

Etiquetas: listas, multiples, formulario
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 10:57.