Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/07/2011, 12:24
winjose
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 16 años, 4 meses
Puntos: 9
Pregunta Problema insertar datos mediante código php

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?
__________________
"La diversidad de opiniones crean una perspectiva capaz de ver todas las caras del objeto"

Última edición por winjose; 28/07/2011 a las 12:41