Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/06/2014, 12:54
Avatar de after
after
 
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 5 meses
Puntos: 10
Respuesta: Doble while en array?

Cita:
Iniciado por metacortex Ver Mensaje
Supongamos que tienes un array con esta estructura (por lo que comentaste creo que es parecido al tuyo):

Código PHP:
Ver original
  1. $array = array(
  2.     'campo' => array('ca1', 'ca2',  'ca3'),
  3.     'codigo' => array('co1', 'co2',  'co3'),
  4.     'nombre' => array('no1', 'no2',  'no3')
  5. );

Puedes hacer un bucle que procese el primer array y otro (dentro del bucle) que procese los del siguiente nivel:

Código PHP:
Ver original
  1. $texto = null;
  2.  
  3. foreach($array as $tit => $arr) {
  4.     $lista = null;
  5.     $texto .= '<h3>'. $tit .'</h3>';
  6.     $texto .= '<ul>';
  7.         foreach($arr as $a) {
  8.             $texto .= '<li>'. $a .'</li>';
  9.         }
  10.     $texto .= '</ul>';
  11. }
  12.  
  13. echo $texto;

El resultado será éste:

Código html:
Ver original
  1. <h3>campo</h3>
  2. <ul>
  3.     <li>ca1</li>
  4.     <li>ca2</li>
  5.     <li>ca3</li>
  6. </ul>
  7.  
  8. <h3>codigo</h3>
  9. <ul>
  10.     <li>co1</li>
  11.     <li>co2</li>
  12.     <li>co3</li>
  13. </ul>
  14.  
  15. <h3>nombre</h3>
  16. <ul>
  17.     <li>no1</li>
  18.     <li>no2</li>
  19.     <li>no3</li>
  20. </ul>
He arreglado un poco el código usando foreach y me ha funcionado, pero el problema que tengo ahora es que me está repitiendo la consulta por cada registro.



Este es el código

Código PHP:
Ver original
  1. $result_select = $querydb;
  2. $rows = array();
  3. while($row = mysql_fetch_array($result_select,MYSQL_ASSOC))
  4.     $rows[] = $row;
  5. foreach($rows as $row){
  6.     $datos = stripslashes($row['Dato']);
  7.     $asociTempo = ($row['temporada']);
  8.  
  9.    
  10.     // html
  11.     echo '<div class="time-select__group group--first">';
  12.     echo ' <div class="col-sm-4">';
  13.     echo ('<p class="time-select__place">Datos ' . $datos . '</p>');
  14.     echo '</div>';
  15.     echo ('<ul class="col-sm-8 items-wrap">');
  16.     foreach($rows as $row){
  17.     $code = stripcslashes($row['codigo']);
  18.     $epost = stripslashes($row['nombre']);
  19.     if ($row['temporada'] ==  $asociTempo) {
  20.     echo ('<li class="time-select__item"><a href="datos.php?c=' . $code . '">' . $epost .'</a></li>');
  21.     }
  22.     }
  23.    
  24.     echo '</ul>';
  25.     echo '</div>';
  26.  
  27. }
__________________
@ivancamiloGo