PHP - foreach

   
Vista:

foreach

Publicado por lorena (8 intervenciones) el 26/02/2015 13:04:33
Buenas tardes,

tengo un problema con mi código quiero hacer un listado de noticias por año y mes o sea algo así
1
2
3
4
5
6
2015
    Enero
        - Noticia
          -Noticia
    Febrero
        - Noticia

Mi código me esta repitiendo todo, me pone el año, el mes las noticias en un bucle y solo quiero que lo saque una vez
¿me podeis ayudar por favor?
este es mi modelo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php //
class Hemeroteca_model extends CI_Model {
    public function __construct() {
        parent::__construct();
        $this->load->helper('ayuda_helper');
    }
    function lista_noticias() {
 
        $query = $this->db->query("SELECT fchFecha,idNoticia, strTitulo, url_Noticia FROM `tblnoticias` ORDER BY fchFecha DESC");
        //return $query->result_array();
        {
        $array = $query->result_array();
        foreach ($query->result_array() AS $row){
        $year = fechaporyear($row['fchFecha']);
        $month = fechapormes($row['fchFecha']);
        $array[$year][$month][$row['url_Noticia']] = $row['strTitulo'];
 
        }
        return $query->result();
        }
    }
  }

Esta es mi vista
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<section class="hemeroteca">
      <hgroup><h1 class="title">Hemeroteca</h1></hgroup>
          <ul>
              <?php
            foreach ($noticia as $item):
                ?>
 
              <li class="primero"><?php echo fechaporyear($item->fchFecha);?></li>
 
           <ul>
 
               <?php
            foreach ($noticia as $item):
                ?>
 
                <li><?php echo fechapormes($item->fchFecha).' ('.sizeof($noticia).')'; ?>
           <ul>
                <?php
            foreach ($noticia as $item):
                ?>
 
            <li><?php echo $item->strTitulo; ?></li>
              <?php endforeach; ?>
                            </ul>
 
                    </li>
               <?php endforeach; ?>
            </ul>
          </li>
 
        <?php endforeach; ?>
 </ul>
</section>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

foreach

Publicado por xve (5519 intervenciones) el 26/02/2015 16:57:45
Hola Lorena, creo que lo haces mal, ya que estas recorriendo tres veces el mismo array, uno dentro del otro...

Yo creo que con recorrerlo una vez es mas que suficiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<section class="hemeroteca">
    <hgroup><h1 class="title">Hemeroteca</h1></hgroup>
    <ul>
        <?php
        $ano="";
        $mes="";
 
        foreach ($noticia as $item):
            if($ano!=fechaporyear($item->fchFecha))
            {
                $ano=fechaporyear($item->fchFecha);
                ?>
                <li class="ano"><?php echo fechaporyear($item->fchFecha);?></li>
                <?php
            }
            if($mes!=fechapormes($item->fchFecha))
            {
                $mes=fechapormes($item->fchFecha);
                ?>
                <li class="mes"><?php echo fechapormes($item->fchFecha).' ('.sizeof($noticia).')'; ?></li>
                <?php
            }
            ?>
            <li class="titulo"><?php echo $item->strTitulo; ?></li>
        <?php endforeach; ?>
    </ul>
</section>

Y con estilos puedes controlar la separación...

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

foreach

Publicado por lorena (8 intervenciones) el 26/02/2015 17:34:09
muchas gracias,

todo perfect
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar