Comunidad de diseño web y desarrollo en internet online

INSERT, UPDATE Y DELETE DE TABLAS RELACIONADAS

Citar            
MensajeEscrito el 02 May 2009 06:41 pm
Hola estimados, llevo tiempo consultando esta web cuando necesito ayuda casi siempre la encuentro aqui, sin embargo me urge saber y enteder un pequeño problemilla. Les explicare lo mas ilustrativo posible.
Ejemplo: tengo 2 tablas definidas a continuacion:
pais := id_pais(PK); nom_pais
persona := id_persona(PK); nom_persona ; id_pais(FK)
(los id son autonumeric, exepto la FK)
como ven existe una relacion entre la pais y persona, de uno a muchos, eso quiere decir que un pais tiene uno o muchas personas. la pregunta es si tengo en la tabla pais por ejemplo:
id_pais | nom_pais
1 | Chile
2 | Brasil
3 | Argentina

y desde un form.php o form.html donde me envia a un php de crear_persona.php donde aqui realiza el insert into ¿ Como hago para que me insertar el nombre de la persona y asociarla a un pais ? con una tabla es muy facil pero me produce problema con la relacion dado que no me guarda la relacion si yo en el formulario por ejemplo pido
inserte nombre : |__________________|
pais : |__| (1: chile ; 2:brasil ; 3:argentina)

luego en el crear persona
$nombre = _POST['$nombre'];
$pais = _POST['$pais'];

$query= "insert into persona (nom_persona,id_pais)Values('$nombre','$id_pais')

al hacer eso me guarda el nombre pero la relacion me la deja en "0" (cero) siendo que envie un numero 2. :evil:

como hago eso? lo mismo con el update y el deleted?

AYUDAAAA!!!!!!

estare agradecido de sus respuesta y comentarios. :lol:

Por seber

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 May 2009 07:55 pm
pero hay te deberia guardar el id de el pais

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 03 May 2009 12:41 am
supuestamente pero no lo hace :( en vez de guardarme el id_pais 3 que es enviado desde el form me guarda un 0 no el 3

Por seber

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 May 2009 04:09 am
si estan relacionadas recuerda que id_pais de la tabla uno debe estar presente en la lista foranea para que pueda realizar el guardado , tambien puedes hacer un debug mandando la query a la pantalla a ver que te esta mandando la variable saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 03 May 2009 04:31 am
mira si esta la forenkey todo esta bien modelado el tema esta emm mira te adjuntare las linea de comando:
como lo ilustre pero al momento de hacer el insert no guarda como debo hacerlo????? fijate asi estan las tablas relacionadas (PK=primary key) (FK=foreingKey)
(tablas de la base datos que estan relacionadas)
pais := id_pais(PK); nom_pais
persona := id_persona(PK); nom_persona ; id_pais(FK)

desde un form.html
<form action="crea_persona.php" method="POST" ">
<br>Nombre:<br /><input type="text" name="nombre">
<br>Pais:<br /><input type="text" name="pais">
</form>

desde el crea_persona.php
include("config.php");
/*Recibimos las variables por el metodo POST*/
$nombre = $_POST['nombre'];
$pais = $_POST['pais'];

$query="INSERT INTO persona (nom_persona, id_pais) VALUES ('$nombre','$pais')";

$result=mysql_db_query($base,$query,$conect);
if(mysql_affected_rows($conect)){
echo "peronsa introducido correctamente";
echo "<p><a href='login.php'>ir</a></p>";
} else {
echo "Error introduciendo persona";
}

supongamos que tenemos esto la cosa es que me realiza el insert into bien pero me ingresa solamente bien el nombre porque el numero de pais que yo ingrese en el form no me lo almacena en la id_pais que es la foreingKey.

Como hago un insert con esa relacion esa es mi pregunta clarito como el agua.
[/url]

Por seber

1 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.