Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2004, 10:40
Avatar de Kelpie
Kelpie
 
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 10 meses
Puntos: 8
Suponiendo que los datos los vas a escribir tu para llenar tablas...

Un script no inserta datos 'por ejemplo' sino 'por algo'. Es decir, cada registro de la tabla TEST va a guardar datos de 5 preguntas, pero tu solo vas a generar una pregunta de cada vez. ¿En qué campo p-x vas a meterla?. Yo me pondría un par de cuadros de texto más para especificar el registro de TEST a llenar y el campo p-x. Aunque también (y es mejor) se podrían generar de golpe las 5 preguntas y así no hay problemas...

Si has definido las constraint de las tablas solo te queda la segunda opción ya que no debería dejarte meter datos en una FK sin que exista aún su PK.

Si optas por especificar los dos datos de más el esquema sería (contando con que el formulario envia datos del tipo campo1, campo2...):

1º Añadir las claves primarias...
$sq1="INSERT INTO PREGUNTAS (id_pregunta,r-a,r-b,r-c,rcorrecta) VALUES ('$campo1','$campo2','$campo3','$campo4','$campo5' )";
$res1=@mysql_query($sq1) or die("Error");

2º Comprobar si existe el TEST
$sq1="SELECT id_test FROM TEST WHERE id_test='$campo6'";
$res1=@mysql_query($sq1) or die("Error");
if(@mysql_num_rows($res1)<1){
//Hay que añadir el registro
$sq2="INSERT INTO test (id_test,$campo7) VALUES ('$campo6','$campo1')";
}else{
//Hay que actualizar el registro
$sq2="UPDATE test SET $campo7='$campo1' WHERE id_test='$campo6'";
}
$res2=@mysql_query($sq2) or die("Error");


La segunda opción te la pongo en otro mensaje para no aburrir...