Antes que nada, decir que este tema estaba en la parte de mySql pero lo expondré aquí pues es dónde opino que debería estar. Y bueno... les pondré toda la info que me es posible para que no hayan dudasy dejar el problema lo más simple posible:
Tenemos un form que me recoje los datos y que es:
Código HTML:
<form id="formularito" name="formularito" method="post" action="hola.php">
<p>FORMULARIO DE PRUEBA</p>
Nombre de equipo:
<input type="text" name="nombre_equipo" id="nombre_equipo" />
Jugador 1:
<input type="text" name="nombre1" id="nombre1" />
Apellido jugador 1:
<input type="text" name="apellido1" id="apellido1" />
Sexo:
masculino
<input type="radio" name="sexo" id="m" value="m">
Femenino </label>
<input type="radio" name="sexo" id="radio" value="f">
El archivo que procesa los datos es:
Código PHP:
<?php
$link = mysql_connect("XXX","XXXX","XXXXXX");
mysql_select_db("XXXXXXX",$link);
$nombre_equipo = $_POST['nombre_equipo'];
$nombre1 = $_POST['nombre1'];
$apellido1 = $_POST['apellido1'];
$sexo = $_POST['sexo'];
mysql_query("INSERT INTO Equipo (nombre_equipo, id_equipo) VALUES ('$nombre_equipo', default)",$link);
$equipo = mysql_insert_id($link); //Te devuelve el ultimo id insertado!
mysql_query("INSERT INTO Jugador (nombre1, apellido1, sexo, id_equipo) VALUES (
'$nombre1', '$apellido1', '$sexo', $equipo)",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
}
else {
echo "Los datos han sido introducidos satisfactoriamente";
}
?>
Y que lo que hace es inserta el nombre de un equipo en la db con un id específico. Posteriormente Ingresa jugadores cuyos id dependerán de a qué equipo pertenecen.
Las tablas Sql armadas son:
TABLA Equipo:
Código:
CREATE TABLE `Equipo` (
`nombre_equipo` varchar(30) NOT NULL,
`id_equipo` int(4) NOT NULL auto_increment,
PRIMARY KEY (`id_equipo`),
UNIQUE KEY `nombre_equipo` (`nombre_equipo`)
TABLA Jugador:
Código:
CREATE TABLE `Jugador` (
`nombre1` varchar(30) NOT NULL,
`apellido1` varchar(30) NOT NULL,
`sexo` varchar(30) NOT NULL,
`id_equipo` int(4) NOT NULL
)
¿Y qué ocurre realmente? ¿Cual es el problema?
Pues que si meto 1 jugador de un equipo llamado pinpon, y luego hago otro registro de otro jugador diferente pero del mismo equipo, entonces ambos jugadores serian registrados con la misma id_equipo. Cosa que no ocurre como se muestra a continuación:
Por medio del form registro estos jugadores
Real madrid | Xavi | Fernandez | Masculino
Atletico | Raul | Perez | Masculino
Atlético | Alfonso | sanchez | Masculino
En la base de datos me sale en la tabla equipos
0 - Jose - Hernandez - Masculino
1 - Xavi - Fernandez - Masculino
0 - Raul - Perez - Masculino
¿ Alguien sabe a qué se debe que este último registro sea 0 y no 1 como habría de ser?