Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2011, 02:18
marco_s
 
Fecha de Ingreso: septiembre-2004
Mensajes: 23
Antigüedad: 19 años, 7 meses
Puntos: 1
A vueltas con un arreglo de objetos

Hola a todos/as

Estoy en la tesitura de los arreglos de objetos en Php y me vuelve un poco loco, os explico detalladamente y con codigo.

En un layaut obtengo un arreglo de objetos, desde la clase stdClass(), que es la que se utiliza ahora bien solo puedo manejar dichos objetos con el foreach, en cuanto intento utilizar un while(){}, se me enbucla y no termina nunca.

Recibo el arreglo de objetos en "$this->poblaciones", si relizo un var_dump, me devuelve esto pero mucho mas largo:

Cita:
{ [0]=> object(stdClass)#292 (4) { ["id_poblacion"]=> string(1) "1" ["id_ciudad"]=> string(1) "1" ["ciudad"]=> string(6) "MADRID" ["poblacion"]=> string(8) "ACEDINOS" }
Nota este el primer elemento del arreglo de objetos de 252 en total.

Esto lo imprimo en pantalla con el siguiente codigo html, pero me sale una lista de 252 poblaciones claro

Código HTML:
<table></tr>
<?php foreach($this->poblaciones as $poblacion):?>
  <tr>
    <td><?php //echo $poblacion->id_poblacion;?></td>
    <td><a href=<?php
    //Aqui ponemos enlace a la siguiente vista
    echo 'index.php?mostrarPoblacion&id_poblacion='.$poblacion->id_poblacion);?>><?php echo $poblacion->poblacion;?></a></td>

  </tr>
 <?php endforeach; ?>
</table> 
Como puedo hacer para generar una tabla con n columnas y las filas que salieran he intentado construirla con un while como el que os muestro, pero ya os digo que se embucla, no termina nunca:

Código PHP:
<?php



echo "<table width='100%'  width='200' border='0' bordercolor='#CCCCCC' cellpadding='0' cellspacing='0'>";
  
  
$numcolumnas 2;

// Aqui cuento el total de elementos del arreglo de objetos
$total_resultados count ($this->poblaciones);

// Sacamos el numero total de filas de la consulta
 

  
if ($total_resultados>0) {

  
$i 1;
  while(
$fila $this->poblaciones){
  
$resto = ($i $numcolumnas);
  if(
$resto == 1){ /*si es el primer elemento creamos una nueva fila*/
  
echo "<tr>";
  }

 echo 
"<td align='left'><a href='".$fila4['poblacion'].".php' title='".$fila3['poblacion']."'> <strong>".$fila3['poblacion']."</strong></a></td>";/*mostramos el valor del campo especificado*/
  
if($resto == 0){/*cerramos la fila*/
  
echo "</tr>";
  }
  
$i++;
  }
 if(
$resto != 0){/*Si en la última fila sobran columnas, creamos celdas vacías*/
  
for ($j 0$j < ($numcolumnas $resto); $j++){
  echo 
"<td></td>";
  }
  echo 
"</tr>";
  }
  }else{
  echo 
"<tr><td>0 elementos encontrados</td></tr> ";
  }
  
  echo
"</table>";

?>
Haber si alguien me da una idea de como encaminar esto por que estoy atascado y la POO de php con objetos y tal ando un poco perdido.

Saludos y gracias por vuestro tiempo.