Foros del Web » Programando para Internet » PHP »

Sacar titulo

Estas en el tema de Sacar titulo en el foro de PHP en Foros del Web. TEngo una pequeña base de datos de futbol que guarda lo siguiente: Posición y nombre. Se sacar los registros e incluso que lo liste agrupados, ...
  #1 (permalink)  
Antiguo 06/12/2007, 04:26
 
Fecha de Ingreso: julio-2005
Mensajes: 259
Antigüedad: 18 años, 9 meses
Puntos: 0
Sacar titulo

TEngo una pequeña base de datos de futbol que guarda lo siguiente:

Posición y nombre.

Se sacar los registros e incluso que lo liste agrupados, pero me encuentro con que no se como hace para que me saque solo 1 vez la posicion y a continuacion todos los nombres. Posteriormente saque otra posicion y sus nombres de jugadores.

ejemplo:

Porteros:
- Juan
- Esteban

Defensas:
- Antonio
- Ezequiel
-Fernando

etc
  #2 (permalink)  
Antiguo 06/12/2007, 06:00
Avatar de ftabilo  
Fecha de Ingreso: junio-2007
Ubicación: En el Pc
Mensajes: 139
Antigüedad: 16 años, 10 meses
Puntos: 3
Re: Sacar titulo

Hola TopLucho, tienes un problema de diseño en tu base de datos tabla.

La idea de las tablas es que cada fila represente información util y que en cada campo se alacene un dato.

Te propongo lo siguiente:

Crear una tabla con los equipos, una con las posiciones y otra con los jugadores y sus datos correspondientes.

Por ejemplo:

Una tabla con los Equipos

Código HTML:
| ID_EQUIPO |   NOMBRE      |
      1        Los Perros
      2        Los Gatos
      3        Los Halcones
Las Posiciones

Código HTML:
| ID_POSICION | POSICION |
     1           Portero
     2           Defensa
     3           Delantero      
Los Jugadores

Código HTML:
| ID_EQUIPO | ID_POSICION | NOMBRE |
   1               2       Francisco
   1               3       Pedro
   1               3       Juan
   2               2       ALejandro
   2               1       Francisco
Con este diseño, te ahorrarias espacio, tu base de datos seria mas liviana, responderia mejor y tendrias todo mejor organizado.

Ahora seria cosa de consultar por equipos ,por posiciones ó por ambas condiciones.

En el caso de querer obtener todos los porteros del equipo los perros, el SQL sería el siguiente:

SELECT NOMBRE FROM JUGADORES WHERE ID_EQUIPO = 1 AND ID_POSICION = 1

Espero haberte entendido y que mi ayuda te sea de utilidad.

Salu2
  #3 (permalink)  
Antiguo 06/12/2007, 06:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Sacar titulo

Código PHP:
$jugadores = array(
  array(
'nombre' => 'Pepe''posicion' => 'defensa'),
  array(
'nombre' => 'Juan''posicion' => 'portero'),
  array(
'nombre' => 'Carlos''posicion' => 'delantero'),
  array(
'nombre' => 'Luis''posicion' => 'medio'),
  array(
'nombre' => 'Antonio''posicion' => 'delantero'),
  array(
'nombre' => 'Ramon''posicion' => 'defensa')
);

$posiciones = array();
foreach (
$jugadores as $jugador)
{
    
$posiciones[$jugador['posicion']]['numero']++;
    
$posiciones[$jugador['posicion']]['jugadores'][] = $jugador;
}

foreach (
$posiciones as $posicion => $datos)
{
    echo 
'<strong>'.$posicion.' ('.$datos['numero'].')</strong><br />';
    foreach (
$datos['jugadores'] as $jugador)
    {
        echo 
$jugador['nombre'].'<br />';
    }

  #4 (permalink)  
Antiguo 06/12/2007, 08:40
 
Fecha de Ingreso: julio-2005
Mensajes: 259
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Sacar titulo

Cita:
Iniciado por Sanubrio Ver Mensaje
Código PHP:
$jugadores = array(
  array(
'nombre' => 'Pepe''posicion' => 'defensa'),
  array(
'nombre' => 'Juan''posicion' => 'portero'),
  array(
'nombre' => 'Carlos''posicion' => 'delantero'),
  array(
'nombre' => 'Luis''posicion' => 'medio'),
  array(
'nombre' => 'Antonio''posicion' => 'delantero'),
  array(
'nombre' => 'Ramon''posicion' => 'defensa')
);

$posiciones = array();
foreach (
$jugadores as $jugador)
{
    
$posiciones[$jugador['posicion']]['numero']++;
    
$posiciones[$jugador['posicion']]['jugadores'][] = $jugador;
}

foreach (
$posiciones as $posicion => $datos)
{
    echo 
'<strong>'.$posicion.' ('.$datos['numero'].')</strong><br />';
    foreach (
$datos['jugadores'] as $jugador)
    {
        echo 
$jugador['nombre'].'<br />';
    }

Imagino que esto se parece mas a lo que necesito. ¿como meto todos los registros en un array lo tengo en base de datos?
Yo necesito que en lugar de mostrar siempre su posicion y nombre, muestre una sola vez la posicion con todos sus nombres y asi con el resto de posiciones y nombres.
  #5 (permalink)  
Antiguo 06/12/2007, 11:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Sacar titulo

Código PHP:
$resultado mysql_query("SELECT nombre, posicion FROM jugador");

$posiciones = array();
while (
$fila mysql_fetch_array($resultado))
{
    
$posiciones[$fila['posicion']][] = $fila;

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.