Foros del Web » Programando para Internet » PHP »

datos comunes en dos tablas diferentes

Estas en el tema de datos comunes en dos tablas diferentes en el foro de PHP en Foros del Web. hola a todos. a ver si me podéis echar una mano. os cuento. tengo una base de datos, a la que llamaremos por ejemplo biblioteca. ...
  #1 (permalink)  
Antiguo 26/07/2007, 13:19
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
datos comunes en dos tablas diferentes

hola a todos. a ver si me podéis echar una mano. os cuento. tengo una base de datos, a la que llamaremos por ejemplo biblioteca. en esta base de datos, entre otras tablas, existen dos tablas relacionadas. la primera, llamada "categorias" tiene los siguientes campos:

*******tabla categorias********************
idcategoria-----autonumerico
categoria------nombre de la categoría en cuestión
****************************************

la segunda tabla se llama "libros" y tiene los siguientes campos:

*******tabla libros********************
idlibro-----autonumerico
titulo------titulo del libro
autor-----autor del libro
categoria----categoría a la que pertenece el libro y que es una de las que existen en el campo "categoria" de la tabla "categorias"
****************************************

bien. mediante una simple consulta a la base de datos, saco un listado de las categorías existentes y doy dos opciones: la opción "modificar categoría" mediante la cual puedo modificar el nombre de la categoría, y la opción "eliminar categoría" mediante la cual elimino la categoría.

A partir de aquí se me plantean las siguientes dudas que necesito me ayudéis a resolver. Os cuento:

- cómo puedo hacer para que al elegir la opción "modificar categoría" (que lo que hace es modificar el nombre de la categoría en cuestión), se modifique tanto en la tabla "categorias" como en la tabla "libros".

- cómo puedo hacer para que al elegir la opción "eliminar categoría", si esta categoría tiene algún libro asociado, es decir, está presente en la tabla "libros" en algún libro, al pulsar sobre el enlace "eliminar categoría" me aparezca el mensaje "atención: esta categoría no está vacía: tiene libros asociados a ella. desea continuar?"

por favor, a ver si me podéis echar un cable. gracias

estibaliz
  #2 (permalink)  
Antiguo 26/07/2007, 13:56
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: datos comunes en dos tablas diferentes

Hola lo ke kieres hacer es borrado en casacada?
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 26/07/2007, 13:56
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: datos comunes en dos tablas diferentes

Cita:
- cómo puedo hacer para que al elegir la opción "modificar categoría" (que lo que hace es modificar el nombre de la categoría en cuestión), se modifique tanto en la tabla "categorias" como en la tabla "libros".
Hola, aqui el truco es unir el INDICE más no el campo nombre de la categoria, por que asi mantendrias una Integridad referencial por medio de claves foraneas..

Te quedaria asi..

*******tabla categorias********************
idcategoria-----autonumerico
categoria------nombre de la categoría en cuestión
****************************************

la segunda tabla se llama "libros" y tiene los siguientes campos:

*******tabla libros********************
idlibro-----autonumerico
titulo------titulo del libro
autor-----autor del libro
idcategoria----categoría a la que pertenece el libro y que es una de las que existen en el campo "idcategoria" de la tabla "idcategorias"
****************************************

Con esta estructura aseguras que cuando hagas cambios en la tabla padre.. osea "categorias" en tus Consultas harias referencia por su ID y asi hacer cambios en categoria afectaria tambien a libros, por que depende el id..

Seguramente te preguntas ok.. y como saco el nombre de la categoria cuando consulte mis libros..

Quedaria algo como..

Código PHP:
mysql_query("
SELECT libros.*,categorias.idcategorias
FROM libros
JOIN categorias ON libros.idcategoria = categorias.idcategoria
"
,$conexion); 
Cita:
cómo puedo hacer para que al elegir la opción "eliminar categoría", si esta categoría tiene algún libro asociado, es decir, está presente en la tabla "libros" en algún libro, al pulsar sobre el enlace "eliminar categoría" me aparezca el mensaje "atención: esta categoría no está vacía: tiene libros asociados a ella. desea continuar?"
Podrias hacer una consulta.. antes de borrar los datos.. recibiendo el idcategoria que deseas borrar y buscar todos los libros que dependan de esa ID

Código PHP:
$idcategoria $_GET['idcategoria'];
$consulta mysql_query("
SELECT * FROM libros
WHERE idcategoria = '$idcategoria'
"
,$conexion);
//ves si tiene resultados la consulta..
if(mysql_num_rows($consulta)!=0)
//si devuelve diferente de 0 quiere decir que hay registros entonces avisas
{
//La categoria tiene libros asociados.. deseas borrarlos
}else
{
//aqui haces el delete.. de la categoria y los libros asociados

__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
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 00:43.