Foros del Web » Programando para Internet » PHP »

problema con array

Estas en el tema de problema con array en el foro de PHP en Foros del Web. quisiera saber como puedo hacer para no repetir el valor de un array: tengo este codigo : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $conn ...
  #1 (permalink)  
Antiguo 31/08/2012, 01:23
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
problema con array

quisiera saber como puedo hacer para no repetir el valor de un array:
tengo este codigo :

Código PHP:
Ver original
  1. <?php
  2. $conn = mysql_connect('localhost','xxx','xxx') OR die(mysql_error());
  3.  
  4. mysql_select_db('deportesDb');
  5.  
  6. $sql = "SELECT deportistas.nombre, deportes.nombreDeporte
  7. FROM deportistas
  8. LEFT JOIN deportistasdeportes
  9. ON deportistas.idDeportista = deportistasdeportes.idDeportista
  10. LEFT JOIN deportes
  11. ON deportistasdeportes.idDeporte = deportes.idDeporte
  12. GROUP BY nombre, nombreDeporte";
  13.  
  14. $query = mysql_query($sql) OR die(mysql_error());
  15.  
  16.  
  17. while ($fila = mysql_fetch_array($query)) {
  18.    
  19.     echo $fila['nombre'].'-'.$fila['nombreDeporte'].'<br/>' ;
  20. }
  21. ?>

y el resultado es este :

Código HTML:
Ver original
  1. cesar-basket
  2. cesar-futbol
  3. cesar-voley
  4. lucho-basket
  5. pedro-futbol
  6. pedro-voley

pero quisiera que el resultado fuera algo asi :


Código HTML:
Ver original
  1. cesar : basket, futbol, voley
  2. lucho :basket
  3. perdro : futbol, voley

alguien podria ayudarme ? gracias

ah me olvidava el array k me da como resultado es este :

Código HTML:
Ver original
  1. Array
  2. (
  3.     [0] => cesar
  4.     [nombre] => cesar
  5.     [1] => basket
  6.     [nombreDeporte] => basket
  7. )
  8. Array
  9. (
  10.     [0] => cesar
  11.     [nombre] => cesar
  12.     [1] => futbol
  13.     [nombreDeporte] => futbol
  14. )
  15. Array
  16. (
  17.     [0] => cesar
  18.     [nombre] => cesar
  19.     [1] => voley
  20.     [nombreDeporte] => voley
  21. )
  22. Array
  23. (
  24.     [0] => lucho
  25.     [nombre] => lucho
  26.     [1] => basket
  27.     [nombreDeporte] => basket
  28. )
  29. Array
  30. (
  31.     [0] => pedro
  32.     [nombre] => pedro
  33.     [1] => futbol
  34.     [nombreDeporte] => futbol
  35. )
  36. Array
  37. (
  38.     [0] => pedro
  39.     [nombre] => pedro
  40.     [1] => voley
  41.     [nombreDeporte] => voley
  42. )
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it

Última edición por cesarin3134; 31/08/2012 a las 01:35
  #2 (permalink)  
Antiguo 31/08/2012, 02:46
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: problema con array

Creo que se puede hacer directamente con la consulta pero como no se como se haría te digo como lo haría yo.

Primero haría una consulta sólo de los nombres. Tras eso haces el while para que te recorra los nombres. Y dentro de ese while haces otro SELECT y que el nombre = 'nombre que esta pasando'. No se si me expliqué pero creo que si. Es decir.

-> consultamos nombres

while (tenemos nombres)
{
-> imprimo nombre
-> consultamos deportes para nombre
while (tenemos deportes)
{ -> imprimo deporte }
}

Un saludo.

En MySQL yo creo que habría que usar DISTINCT o algo así pero sin probarlo me es dificil decirlo de memoria.
  #3 (permalink)  
Antiguo 31/08/2012, 02:50
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
Respuesta: problema con array

si entendi, ejecuto una query a la tabla nombres y despues lo tomo como parametro para ejecutar una nueva query a deportes y despues imprimo deportes.
tendre k ver como hago pork uso 3 tablas una para los nombres, otra para deportes y otra para mostrar la relacion entre nombres y deportes ; )
gracias por la pista voy a provar
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it
  #4 (permalink)  
Antiguo 31/08/2012, 03:44
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
Respuesta: problema con array

bueno gracias la idea que me diste pude resolverlo ;)

primero hice una query para los nombres y despues le pase el nombre como parametro para que me devolviera los deportes asociados a cada nombre. quedo asi :

Código PHP:
Ver original
  1. $sql2 = "SELECT deportistas.nombre FROM deportistas";
  2.  
  3. $query = mysql_query($sql2) or die(mysql_error());
  4.  
  5.    while ( $nombre = mysql_fetch_array($query)) {
  6.      
  7.       $nombreJugador = $nombre['nombre'];
  8.       echo $nombreJugador;
  9.       $sqlDeportes = "SELECT deportes.nombreDeporte
  10.                     FROM deportes
  11.                     INNER JOIN deportistasdeportes
  12.                     ON deportes.idDeporte = deportistasdeportes.idDeporte
  13.                     INNER JOIN deportistas
  14.                     ON deportistas.idDeportista = deportistasdeportes.idDeportista
  15.                     WHERE deportistas.nombre = '$nombreJugador'";
  16.  
  17.       $queryDeportes = mysql_query($sqlDeportes) OR die(mysql_error());
  18.                      
  19.       while ($resultDeporte = mysql_fetch_assoc($queryDeportes)){
  20.  
  21.            $nombreDeporte = $resultDeporte['nombreDeporte'];
  22.  
  23.            echo '-'.$nombreDeporte;
  24.  
  25.       }
  26.       echo '<br/>';//   echo $nombreJugador.'-'.$nombreDeporte;


y este es el resultado :

Código HTML:
Ver original
  1. cesar-voley-futbol-basket
  2. pedro-futbol-voley
  3. lucho-basket
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it

Etiquetas: mysql, sql
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 07:26.