Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2009, 09:46
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
foreach devuelve más de un dato

Hola, he estado todo el fin de semana en este problema que ya resulta antipático. Resulta que el esistema consulta a la BD, trae la info con GET y luego los traigo con un foreach. Funciona perfecto si no fuese por el detalle que a veces refleja dos y más datos.

En sí el código es éste (hay una mezcla de variables propias y de Wordpress pero no le presten atención):

Código php:
Ver original
  1. <?php
  2. foreach((get_the_category()) as $cat) {
  3.   if ($cat->category_parent == 31 AND $ent != 0) echo '
  4.  <tr>
  5.  <th scope="row">Ente ejecutor:</th>
  6.  <td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras desarrolladas por este organismo)</a><br /></td>
  7.  </tr>
  8.  ';
  9.   if ($cat->category_parent == 6 AND $reg != 0) echo '
  10.  <tr>
  11.  <th scope="row">Región:</th>
  12.  <td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras ubicadas en esta región)</a><br /></td>
  13.  </tr>
  14.  ';
  15.   if ($cat->category_parent == 34 AND $niv != 0) echo '
  16.  <tr>
  17.  <th scope="row">Nivel de avance:</th>
  18.  <td>' . $cat->cat_name . ' <a href="' . get_category_link($cat->cat_ID) . '">(Obras con este nivel de avance)</a><br /></td>
  19.  </tr>
  20.  ';
  21. } break;
  22. ?>
Puse al final ese break porque de lo contrario se viene todo el array de categorías ¿hay alguna manera de fijar con php la posición inicial de la lista y escoger el puesto del array que tenga un solo dato?. Como mencioné funciona bien, pero en unos 4 o 5 casos me devuelve varios. Si pudiera decidir desde dónde va a tomarlos resolvería el problema.