Foros del Web » Programando para Internet » PHP »

Guardar datos desde php en mysql con llave foranea

Estas en el tema de Guardar datos desde php en mysql con llave foranea en el foro de PHP en Foros del Web. Hola a todos!, estoy algo desesperada con esto necesito ayuda porfavor no encuentro cual sea mi error... primero que nada tengo esta base de datos: ...
  #1 (permalink)  
Antiguo 14/04/2013, 12:40
 
Fecha de Ingreso: abril-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Pregunta Guardar datos desde php en mysql con llave foranea

Hola a todos!, estoy algo desesperada con esto necesito ayuda porfavor no encuentro cual sea mi error... primero que nada tengo esta base de datos:

>>Tabla Registros<<
id_registros(int 10) No null <<--- Llave Primaria
Nombre(char 50) no null
Apellidos(char 50) no null
Correo(char 50) null
Tel(char 20) null
Producto(int 11) null <<--- Llave Foranea (hace referencia a idProducto)
Coment(text) no null


>>Tabla Producto<<
idProducto(int 11) no null<<---- Llave Primaria
tipo(char 45) no null
ubicacion(char 45) no null
tamaño(char 45) no null
precio(char45) no null


ahora estoy llenando la tabla de Registros por medio de un formulario en php, todo funcionaba bien hasta que hice la tabla Producto y le agregué la llave foranea a Registros. Además no me cacha los datos introducidos dentro del campo Producto de la tabla Registros. Mi codigo está así:

FORMULARIO
Código HTML:
<form action="insert.php" method="post">
							Nombre:<br /> <input name="Nombre" type="text" />
							<br /><br />
							Apellidos:<br /> <input name="Apellidos" type="text" />
							<br /><br />
							E-mail:<br /> <input name="Correo" type="text" />
                            <br /><br />
                            Telefono/Celular:<br /> <input name="Tel" type="text" />
                            <br /><br />
                            ¿En cual producto está interesado?:
                            <br />
                            <select>
							<option name="Producto" value="1">Residencias en Campestre</option>
							<option name="Producto" value="2">Residencia en Vistas del Sol</option>
                            <option name="Producto" value="3">Residencias en el Centro La Mora</option>
                            <option name="Producto" value="4">Terreno en av. Universidad</option>
                            <option name="Producto" value="5">Terreno en la España</option>
							<option name="Producto" value="6">Oficinas Tecnopolo</option>
							</select>
                            <br />
                            <br />
							Preguntas o Comentarios:<br /> <textarea name="Coment" rows="4" cols="70">Escriba aqui</textarea>
							<input type="submit" name="Enviar"  />
							</form> 



PAGINA DE INSERTAR
Código PHP:
<body>
<?
if($conexion=mysql_connect("localhost","root","inu5017a") or die ("No se pudo accesar al servidor Mysql"))
{
    
mysql_select_db("Formulario",$conexion) or die ("No se pudo seleccionar la bd");
}



$_Nombre=$_POST['Nombre'];
$_Apellidos=$_POST['Apellidos'];
$_Correo=$_POST['Correo'];
$_Tel=$_POST['Tel'];
$_Producto=$_POST['Producto'];
$_Coment=$_POST['Coment'];

echo 
"Se va a guardar los datos: ".$_Nombre." ".$_Apellidos." ".$_Correo." ".$_Tel." ".$_Producto." ".$_Coment." ";

$_sql=("insert into Registros(Nombre,Apellidos,Correo,Tel,Producto,Coment) 
        values ('"
.$_Nombre."','".$_Apellidos."','".$_Correo."','".$_Tel."','".$_Producto."','".$_Coment."');";
    
        echo 
"<br>";
        echo 
$_sql;
        
        
        
mysql_query($_sql,$conexion);
        
    



?>
</body>
  #2 (permalink)  
Antiguo 14/04/2013, 13:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Guardar datos desde php en mysql con llave foranea

Para no borrarte los códigos de programación, estoy moviéndote el post al Foro de PHP, donde probablemente puedan ayudarte con eso (programación es off-topic en los foros de BBDD).
A nivel de datos sólo puedo decirte que si el valor que pones en la FK no existe previamente en Productos, no podrás insertar nada.
Vale decir: Los "productos" que aparecen listados deben corresponder a los que existen en la tabla a que se referencian, y el seleccionado debe ser enviado la tabla Registros con el ID que le corresponde al producto en la tabla, aunque ese ID no sea el mismo que figura en el selector.
No me queda claro si los valores en el selector son iguales a las PK de la tabla Productos, porque los tienes hardcodeados, lo cual es un error severo.
Deberás verificar los datos entrantes y que se estén tomando adecuadamente en el formulario, especialmente porque no estás previniendo que los valores de las variables que llegan por POST no contengan caracteres o símbolos que rompan la sintaxis de MySQL (por ejemplo, un apóstrofo).

Movido de MySQL a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 14/04/2013 a las 15:54
  #3 (permalink)  
Antiguo 14/04/2013, 14:22
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Guardar datos desde php en mysql con llave foranea

A nivel de PHP me parece correcto. ¿Has probado a mostrar los errores SQL? Algo estilo...
Código PHP:
if (mysql_errno() != 0) {echo mysql_error();} 
Un saludo :)

Etiquetas: html, mysql
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 19:42.