Ver Mensaje Individual
  #20 (permalink)  
Antiguo 29/07/2011, 02:59
winjose
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: Código correcto para realizar consultas.

Cita:
Iniciado por Triby Ver Mensaje
No, señor, es muy mala idea guardar todos los nombres de los jugadores en un mismo registro, pero lo que no has entendido del todo es la forma de relacionar equipo con jugadores y, si no lo tienes claro desde el principio, tanto el diseño de las tablas como el desarrollo de tus scripts van a ser tremendamente complicados.

Imagino que si un mismo usuario registra dos veces los mismos jugadores, con el mismo nombre de equipo (o incluso aunque sea diferente) ya tendras serios problemas.

Sugiero que los jugadores tambien tengan una ID, de manera que si en un futuro deseas hacer algo mas que simplemente crear equipos, como sancionar, asignar puntuacion, etc., puedas lograrlo facilmente.

Tambien, antes de insertar un registro (de equipo o jugador):
1- Verifica si ya existe el nombre en la tabla correspondiente.
2- Si existe, simplemente obtienes la ID, para lo que sea necesario.
2- Si no existe, lo insertas y tambien obtienes la ID con mysql_last_insert_id

P.D. Sexo varchar(30)?... bueno, pueden escribir "Al menos tres veces por semana", cuatro ya no cabe.
Te refieres a algo como esto verdad?

Código PHP:
<?php
//Creamos el link de conexión
$link mysql_connect("XXXX","XXXX","XXXXXX");
mysql_select_db("XXXXXX",$link);


    
$nombre_equipo $_POST['nombre_equipo'];
    
$nombre1 $_POST['nombre1'];
    
$apellido1 $_POST['apellido1'];
    
$sexo $_POST['sexo'];

//Vemos si existe algún campo repetido
$sql_equipo mysql_query ("SELECT nombre_Equipo FROM Equipo WHERE nombre_equipo= '$nombre_equipo'");
$total_equipo mysql_num_rows($sql_equipo);
if(
$total_equipo 0) {$existe_equipo 1;} else {$existe_equipo=0;}

$sql_jugador mysql_query ("SELECT nombre1 FROM Jugador WHERE nombre1= '$nombre1'");
$total_jugador mysql_num_rows($sql_jugador);
if(
$total_jugador 0) {$existe_jugador 1;} else {$existe_jugador=0;}
//Si algún equipo o jugador existe, existe_equipo OR existe_jugador contendrán el calor 1. En caso contrario serán 0.

if ($existe_equipo 0)
{
mysql_query("INSERT INTO Equipo (nombre_equipo, id_equipo) VALUES ('$nombre_equipo', default)",$link);

        if (
$existe_jugador 0) {
        
$equipo mysql_insert_id($link); //Te devuelve el ultimo id insertado!
        
$equipo $result['id_equipo']; 
        
mysql_query("INSERT INTO Jugador (nombre1, apellido1, sexo, id_equipo) VALUES ('$nombre1', '$apellido1', '$sexo', $equipo)",$link);
        }
        else { echo 
"Este jugador ya ha sido insertado en este equipo";}
}
else { echo 
"El equipo ya existe";}

$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";}

?>
Pero degraciadamente no funciona, me dice siempre que el equipoya existe, aún sin existir éste ne la db.
__________________
"La diversidad de opiniones crean una perspectiva capaz de ver todas las caras del objeto"