Foros del Web » Programando para Internet » PHP »

Menu <select> para actualizar campo en BD compuesto de Foreign Keys

Estas en el tema de Menu <select> para actualizar campo en BD compuesto de Foreign Keys en el foro de PHP en Foros del Web. Hola compañer@s, Tengo una duda, y no se resorverla. Estoy realizando un gestor CMS y tengo una BD que uno de los campos es "Comunidad" ...
  #1 (permalink)  
Antiguo 17/09/2010, 02:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 4 meses
Puntos: 1
Menu <select> para actualizar campo en BD compuesto de Foreign Keys

Hola compañer@s,

Tengo una duda, y no se resorverla.

Estoy realizando un gestor CMS y tengo una BD que uno de los campos es "Comunidad" (Aragon, Catalunya, Andalucía, etc), que éstos datos son recogidos como Foreign Key de otra tabla de la BD.

Cuando en el CMS hago un update en la consulta PHP-Mysql, no me lo actualiza. En cambio los demás que son "text" y al escribir en el formulario sí que lo actualiza.

Alguien sabe cómo hacer un desplegable (<select>) que actualice el campo que contenga una foreign key?

Espero haberme expicado bien,
Gracias por vuestras respuestas y un saludo!
  #2 (permalink)  
Antiguo 17/09/2010, 02:53
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: Menu <select> para actualizar campo en BD compuesto de Foreign Keys

Posiblemente estés cogiendo mal el valor que envía el select. ¿Código?
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #3 (permalink)  
Antiguo 17/09/2010, 02:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Menu <select> para actualizar campo en BD compuesto de Foreign Keys

Cita:
Iniciado por angelAparicio Ver Mensaje
Posiblemente estés cogiendo mal el valor que envía el select. ¿Código?
Aquí va:

Código PHP:
$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE productores SET es_NombreProductor=%s, es_Comunidad=%s, es_Ciudad=%s, es_TextoIntro=%s, es_Texto=%s, es_H1=%s, es_Title=%s, es_Description=%s, es_Keywords=%s, es_URL=%s, es_CentroProduccion=%s, es_CentroProduccion_Texto=%s, es_CentroProduccion_Title=%s, es_CentroProduccion_Description=%s, es_CentroProduccion_Keywords=%s, es_CentroProduccion_URL=%s, es_CentroProduccion_H1=%s, ca_NombreProductor=%s, ca_Comunidad=%s, ca_Ciudad=%s, ca_TextoIntro=%s, ca_Texto=%s, ca_H1=%s, ca_Title=%s, ca_Description=%s, ca_Keywords=%s, ca_URL=%s, ca_CentroProduccion=%s, ca_CentroProduccion_Texto=%s, ca_CentroProduccion_Title=%s, ca_CentroProduccion_Description=%s, ca_CentroProduccion_Keywords=%s, ca_CentroProduccion_URL=%s, ca_CentroProduccion_H1=%s, Imagen=%s WHERE Id_Productor=%s",
                       
GetSQLValueString($_POST['es_NombreProductor'], "text"),
                       
GetSQLValueString($_POST['es_Comunidad'], "double"),
                       
GetSQLValueString($_POST['es_Ciudad'], "text"),
                       
GetSQLValueString($_POST['es_TextoIntro'], "text"),
                       
GetSQLValueString($_POST['es_Texto'], "text"),
                       
GetSQLValueString($_POST['es_H1'], "text"),
                       
GetSQLValueString($_POST['es_Title'], "text"),
                       
GetSQLValueString($_POST['es_Description'], "text"),
                       
GetSQLValueString($_POST['es_Keywords'], "text"),
                       
GetSQLValueString($_POST['es_URL'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_Texto'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_Title'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_Description'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_Keywords'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_URL'], "text"),
                       
GetSQLValueString($_POST['es_CentroProduccion_H1'], "text"),
                       
GetSQLValueString($_POST['ca_NombreProductor'], "text"),
                       
GetSQLValueString($_POST['ca_Comunidad'], "double"),
                       
GetSQLValueString($_POST['ca_Ciudad'], "text"),
                       
GetSQLValueString($_POST['ca_TextoIntro'], "text"),
                       
GetSQLValueString($_POST['ca_Texto'], "text"),
                       
GetSQLValueString($_POST['ca_H1'], "text"),
                       
GetSQLValueString($_POST['ca_Title'], "text"),
                       
GetSQLValueString($_POST['ca_Description'], "text"),
                       
GetSQLValueString($_POST['ca_Keywords'], "text"),
                       
GetSQLValueString($_POST['ca_URL'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_Texto'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_Title'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_Description'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_Keywords'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_URL'], "text"),
                       
GetSQLValueString($_POST['ca_CentroProduccion_H1'], "text"),
                       
GetSQLValueString($_POST['Imagen'], "text"),
                       
GetSQLValueString($_POST['Id_Productor'], "int"));

  
mysql_select_db($database_bdmontsoliu$bdmontsoliu);
  
$Result1 mysql_query($updateSQL$bdmontsoliu) or die(mysql_error());

  
$updateGoTo 'http://www.web.com/gestor/seo/productores/'.$Edicion.'/ok/';
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?'));
    
$updateGoTo .= preg_replace('/Edicion='.$Edicion.'&Id=/'''$_SERVER['QUERY_STRING']);
  }
  
header(sprintf("Location: %s"$updateGoTo));

Y me da el fallo

Cannot add or update a child row: a foreign key constraint fails (`montsoliudemo`.`productores`, CONSTRAINT `es_Comunidad` FOREIGN KEY (`es_Comunidad`) REFERENCES `productos-comunidad` (`es_Comunidad`) ON DELETE NO ACTION ON UPDATE CASCADE)

Supongo que el fallo andará por aquí...

Última edición por tonimito; 17/09/2010 a las 03:25
  #4 (permalink)  
Antiguo 17/09/2010, 05:19
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: Menu <select> para actualizar campo en BD compuesto de Foreign Keys

¿Cuál es la clave primaría de productores? Parece que es un problema de como tienes definidas las tablas en MySQL.

Es decir, no es problema de como envías los datos, es de las restricciones de la BD a la hora de actualizar la tabla.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #5 (permalink)  
Antiguo 17/09/2010, 05:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Menu <select> para actualizar campo en BD compuesto de Foreign Keys

Cita:
Iniciado por angelAparicio Ver Mensaje
¿Cuál es la clave primaría de productores? Parece que es un problema de como tienes definidas las tablas en MySQL.

Es decir, no es problema de como envías los datos, es de las restricciones de la BD a la hora de actualizar la tabla.
Gracias por tu atención,

La clave primaria es "Id_Productor"

Etiquetas: bd, compuesto, keys, foreignkey, campos
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:28.