Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/05/2005, 03:55
Avatar de caerolus
caerolus
 
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
Lo prometido es deuda Vayamos por partes:

Cita:
cómo hago para mandar a los 20 jugadores diferentes a 1 equipo sin especificar,osea,no quiero especificar el equipo ID,que directamente,sume los 20 jugadores a los equipos enlistados...
Bueno, simplemente tendrás que poner un bucle por encima del que te puse yo, en el que vayas iterando sobre cada equipo. Supongamos que los tienes en la tabla EQUIPOS y que puedes recorrerlos como sigue:
Código PHP:
// Primero los arrays con los valores posibles, igual que antes
$nombres = array("pepe""juan""paco""ruben"); // Estos serán los nombres posibles para los jugadores
$apellidos = array("gomez""gonzalez""garcia""martin"); // Estos los apellidos posibles
$edades = array(1820213034); // Estas son las edades
// Debes tener un array como los anteriores por cada campo randomizable, con todos los valores posibles 

$res mysql_query("select id from equipos"); // Seleccionamos todos los equipos
while($row mysql_fetch_array($res)){
  
$id $row['id']; // Supondré que así se identifica a un equipo
  // A partir de aquí simplemente el código que ya te puse
  
for($i 0$i 20$i++){ 
    
$nombre $nombres[rand(0count($nombres)-1)]; 
    
$apellido $apellidos[rand(0count($nombres)-1)]; 
    
$edad $edades[rand(0count($edades)-1)]; 
    
mysql_query("insert into jugadores values($id, $i, '$nombre', '$apellido', $edad"); 
  }

De esta forma pondrás 20 jugadores por cada equipo que tengas en la tabla EQUIPOS.
Cita:
tambien quiero saber...cómo hago para que la edad de los jugadores suba 1 año,cada 12 meses...pero que todos cumplan el mismo dia,se entiende? en un mismo dia,que suban todos 1 año...eso se hace manual,o directamente se puede hacer con un sistema?
Personalmente, creo que la mejor opción para esto es hacerlo de forma automática, pero cuando tú lo digas. Es decir, que el día que tú quieras (el del cumpleaños de todos ) ejecutes un script y él sólo lo hará, pero sólo cuando tú lo digas.
Código PHP:
mysql_query("update table jugadores set edad=edad+1"); 
Mete esto en un script que llames, por ejemplo, birthday.php. El día que tú quieras, pon en tu navegador http://www.tusitio.com/birthday.php y todos los jugadores cumplirán años. Mejor opción es que lo pongas en algún sitio de administración que tengas preparado tú por ahí, para asegurarte de que sólo tú puedes hacerlo. Si no, tampoco es mucha molestia quitarlo del servidor y ponerlo sólo cuando lo vayas a usar.
La opción de que lo haga automático, incluso sin precisar tu ayuda, opino que es peor para algo que sólo se hace una vez al año, pues habría que comprobarlo cada vez que se muestre una página, y eso a todas luces no es eficiente.
Cita:
Otra cosa que no me quedo del todo claro,

mysql_query("insert into jugadores values($id, $i, '$nombre', '$apellido', $edad");
}

aca dice insert into jugadores,pero el nombre del equipo no está dentro de la tabla jugadores,quiero que esté en otra tabla que se llame,equipos...porque en esa tabla,van los datos de (cómo le fue en la liga,cómo esta ahora,el fixture,mmm,etc etc) me explico?
Te explicas . No sé si has trabajado antes con bases de datos, pero lo que tienes en la tabla jugadores es una clave foránea (foreign key) sobre la tabla equipos. En resumidas cuentas, para referenciar desde jugadores a un registro de la tabla equipo, como es el caso, has de copiar en la tabla jugadores todos los campos que identifiquen a ese registro de equipos. Tanto si es un simple identificador como en este caso, como si son 4 campos, has de copiarlos todos.
En efecto, en tu tabla de equipos puedes tener todo eso que dices, pero en jugadores debes poder identificar unívocamente a un equipo, para hacer que ese jugador sea de un sólo equipo, y así es como se hace. En la tabla equipos olvidé ponerte lo de la clave foránea, en verdad sería así:
Código:
create table jugadores(
  equipo int not null,
  jugador int not null,
  nombre varchar(50) not null,
  apellido varchar(50) not null,
  edad int not null,
  primary key(equipo, jugador),
  foreign key (equipo) references equipos (id) on delete cascade on update cascade
)
Cita:
Otra preguntita,suponganse que yo tengo el archivo jugadores.php ,cómo hago para que cuando entre un usuario,y vaya a la seccion jugadores(de su equipo) directamente le reflejen los jugadores de su equipo?
Bueno, simplemente debes hacer una consulta sobre los jugadores de ese equipo, y mostrarlos uno por uno en un bucle. Pero el problema es cómo saber qué equipo pertenece a ese usuario, y si puede tener varios. Supondré que cada usuario podrá tener varios equipos.
En este caso lo mejor es que metas en la tabla equipos un campo que sea usuario, y que recoja el nombre del usuairo propietario de ese equipo. Entonces, deberás hacer esto:
Código PHP:
// Primero haremos una consulta de los equipos de ese usuario
$res1 mysql_query("select * from equipos where usuario='$usuario'");
// Esta variable $usuario es el nombre del usuario, que se podrá guardar por sesiones, por ejemplo
while($row1 mysql_fetch_array($res1)){
  echo 
"<h2>Equipo ".$row1['nombre']."</h2><br>" // Por ejemplo
  
$res2 mysql_query("select * from jugadores where id = ".$row1['id']);
  while(
$row2 mysql_fetch_array($res2)){
    echo 
"Jugador ".$row2['i'].": ".$row2['nombre']." ".$row2['apellido']." ".$row2['edad']." años<br>"// Mostrar los campos que se quiera
  
}

Esto se puede hacer de otra forma con una sóla consulta pero es más complicado. Así lo entenderás mejor. En cuanto a lo de las sesiones, es una forma de mantener ciertas variables en el servidor mientras dure la sesion de navegación de ese cliente. No sé si sabrás lo que son, pero puedes mirarlo aquí http://www.forosdelweb.com/showthrea...992#post238992 http://www.forosdelweb.com/showthrea...543#post321543 http://www.forosdelweb.com/showpost....&postcount=129
Y creo que eso es todo, suerte
__________________
Mi página personal: Julián Urbano

Última edición por caerolus; 25/05/2005 a las 04:01