Foros del Web » Programando para Internet » PHP »

foreach mysql select

Estas en el tema de foreach mysql select en el foro de PHP en Foros del Web. estoy extrayendo cierta información de varios usuarios en una tabla estoy usando un foreach para recorrer el problema que tengo al hacerlo es este user ...
  #1 (permalink)  
Antiguo 24/09/2015, 21:26
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
foreach mysql select

estoy extrayendo cierta información de varios usuarios en una tabla
estoy usando un foreach para recorrer

el problema que tengo al hacerlo es este

user jugador equipo
juan messi barcelona
juan xavi barcelona


mi consulta es para mostrar que jugadores y equipo tiene Juan
al mostrarlo lo hace asi :

Messi - Barcelona
Xavi - Barcelona

mi idea era mostrarlo así

Messi - Xavi - Barcelona

es posible esto o estoy loco
  #2 (permalink)  
Antiguo 24/09/2015, 21:50
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: foreach mysql select

Hay varias maneras de resolver tu problema.
1. Si existe una tabla Equipo puedes hacerlo por medio de un group by y una función mysql.
2. Si sólo usas una tabla puedes hacerlo creando un array multidimensional que vaya acumulando datos por equipo.

Con cuál de las 2 maneras trabajas? Deberías de poner el avance que tienes..
  #3 (permalink)  
Antiguo 25/09/2015, 15:19
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: foreach mysql select

Cita:
Iniciado por oggy_15_3 Ver Mensaje
Hay varias maneras de resolver tu problema.
1. Si existe una tabla Equipo puedes hacerlo por medio de un group by y una función mysql.
2. Si sólo usas una tabla puedes hacerlo creando un array multidimensional que vaya acumulando datos por equipo.

Con cuál de las 2 maneras trabajas? Deberías de poner el avance que tienes..
bueno la cosa es asi :
mi tabla es esta :

Usuario Jugador Equipo

Jhony Messi Barcelona
Jhony Xavi Barcelona
Jhony Cristiano Madrid
Juan Batista Manchester
Juan Carlos Milan

Yo queria mostrar la lista de mis usuarios con los jugadores que ellos eligieron

yo muestro la lista perfectamente el caso es que yo quería mostrarla asi :

Jhony [Messi][Xavi] - [Barcelona] ---- [Cristiano]-[Madrid]

no le prestes atencion a los [] es solo un ejemplo
a lo que me refiero es que no queria mostrar la lista de todos asi
Jhonny messi barcelona
Jhonny Xavi Barcelona
Jhonny ect ect
Juan etc etc

si no mostrar como ya te explique arriba , eso se puede ?
  #4 (permalink)  
Antiguo 25/09/2015, 16:02
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: foreach mysql select

tal como dice oggy

de la forma en que lo tenes tendrias que crear otro array, en el cual vallas creando los equipos y metiendole jugadores.. y luego recorrer este segundo array

lo logico seria que tuvieras una tabla equipos y otra de jugadores.. de esa forma podrias hacer GROUP_CONCAT(jugador ORDER BY jugador ASC SEPARATOR ' - ') AS jugadores en tu select y luego agrupando por equipo de esa forma jugadores tendra algo como esto "messi - xavi - iniesta"
  #5 (permalink)  
Antiguo 25/09/2015, 16:23
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: foreach mysql select

Aquí va la ayuda.
Estoy usando datos estáticos (array) de prueba.
Así que lo único que tienes que reemplazar es el foreach que uso por el while de tu result.
Código PHP:
Ver original
  1. $aJugador[]=array('user'=>'juan','jugador'=>'messi','equipo'=>'Barcelona');
  2. $aJugador[]=array('user'=>'juan','jugador'=>'paolo','equipo'=>'Flamengo');
  3. $aJugador[]=array('user'=>'juan','jugador'=>'xavi','equipo'=>'Barcelona');
  4.  
  5. $aGrupos=array();
  6. foreach($aJugador as $row){//while($row=mysql_fetch_array($result)){
  7.     $sEquipo=$row['equipo'];
  8.     $sJugador=$row['jugador'];
  9.     if(!isset($aGrupos[$sEquipo])){
  10.         $aGrupos[$sEquipo]=array();
  11.     }
  12.     array_push($aGrupos[$sEquipo],$sJugador);  
  13.    
  14. }
  15. foreach($aGrupos as $sEquipo=>$aJugador){
  16.     echo join(", ",$aJugador)." (".$sEquipo.")<br>";
  17. }
Saludos.
  #6 (permalink)  
Antiguo 26/09/2015, 20:16
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: foreach mysql select

creo que no me explique bien realmente
lo que no quiero es que se repita el usuario


Código:
User Jugador  Equipo
Jose  Messi      barcelona
        Xavi        barcelona
        Iniesta    barcelona
        Paolo       Flamenco
        Ramos     Madrid
así mas o menos seria como lo quería manejar , se puede hacer de esa forma ?
  #7 (permalink)  
Antiguo 26/09/2015, 20:42
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: foreach mysql select

Cita:
Iniciado por sonystar_17 Ver Mensaje
creo que no me explique bien realmente
lo que no quiero es que se repita el usuario


Código:
User Jugador  Equipo
Jose  Messi      barcelona
        Xavi        barcelona
        Iniesta    barcelona
        Paolo       Flamenco
        Ramos     Madrid
así mas o menos seria como lo quería manejar , se puede hacer de esa forma ?
Vaya, al parecer te gusta cambiar de resultado
Entonces, esto puede pasar?
User Jugador Equipo
Jose Messi barcelona
Xavi barcelona
Iniesta barcelona
Paolo Flamenco
Ramos Madrid
juan pique barcelona
  #8 (permalink)  
Antiguo 26/09/2015, 21:16
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: foreach mysql select

si mi osea yo tengo una tabla

en la cual se divide por usuarios y jugadores y equipos
pero el problema es que como ya dije antes lo muestra así :

Juan
Juan
Juan
Juan
Juan
Jose
Jose
Jose

si Juan tiene 10 jugadores en su poder mostrara 10 veces a juan
y si Jose tiene 5 lo muestra 5 veces

por eso quería saber si se podía hacer así :

Código:
Juan Messi  Barcelona
     Iniesta  Barcelona
      Xavi    Barcelona
Código:
Jose Pique Barcelona 
       Ramos Madrid
  #9 (permalink)  
Antiguo 26/09/2015, 23:05
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: foreach mysql select

Entonces sería así
Código PHP:
Ver original
  1. foreach($aJugador as $row){//while($row=mysql_fetch_array($result)){
  2.     $sUser=$row['user'];
  3.     $sEquipo=$row['equipo'];
  4.     $sJugador=$row['jugador'];
  5.     if(!isset($aGrupos[$sUser])){
  6.         $aGrupos[$sUser]=array();
  7.     }  
  8.     $aGrupos[$sUser][]=array($sJugador,$sEquipo);
  9. }
  10. foreach($aGrupos as $user=>$row){
  11.     echo $user."-";
  12.     for($ni=0;$ni<count($row);$ni++){
  13.         if($ni>0)echo "<br>";
  14.         echo join("-",$row[$ni]);
  15.     }
  16.     echo "<br>";
  17. }
  #10 (permalink)  
Antiguo 27/09/2015, 04:00
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: foreach mysql select

si los ordenas por equipo podes hacer ... que.. en el mismo while podes hacer in_array

creas un array.. users... y en cada vuelta le metes el usuario... luego consultas si esta en el usuario actual en el arra y si no esta lo imprimis.. y sino no.. algo asi

Código PHP:

$mysUsers
=array();

foreach(
$aJugador as $row){//while($row=mysql_fetch_array($result)){
    
   
if(!in_array($row['user'],$mysUsers)){
      echo 
$row['user'].'<br>';
   }
    echo 
$row['equipo'].'<br>';
    echo 
$row['jugador'].'<hr>';

    
$mysUsers[]=$row['user'];


Etiquetas: foreach, mysql, select, tabla, usuarios
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 10:11.