PHP - Foreach dentro de otro foreach

   
Vista:

Foreach dentro de otro foreach

Publicado por andres (63 intervenciones) el 17/03/2014 16:33:43
Hola, tengo el siguiente problema estoy trabajando un foreach dentro de otro el cual cada uno trae una serie de resultados de una consulta en una base de datos pero el foreach que va dentro del otro no me esta imprimiendo todos esos registros si no que me imprime solo uno cuando el resultado trae varios donde puedo estar fallando.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
	require('php_lib/login.class.php');
	if(!isset($_SESSION))
  {
     session_start();
  }
	$licencia1=$_SESSION['LICENCIA'];
	require_once('php/prospecto_modelo.php');
	$prospecto1 = new Prospecto();
	$listado = $prospecto1->listaProspecto($licencia1);
	$comentarios= new Prospecto();
	$lista = $comentarios->comentarios();
 
?>
<html>
	<head>
		<title>Listado de Prospectos</title>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	       <script language="javascript" type="text/javascript" src="jquery.js"> </script>
	       <script type="text/javascript" language="javascript" src="funcionesJquery.js"></script>
		<link rel="stylesheet" type="text/css" href="estiloP.css" />
 
	</head>
 
    <body>
            <?php $Ncabezera=0; ?>
			<?php foreach($listado as $fila){
			 $Ncabezera= $Ncabezera + 1;
             ?>
 
			<div style="float: left; border-bottom: 1px dotted #444; border-width: 2px; margin-top: 10px;">
 
                 <div style="float: left; width: 100%; margin-bottom: 10px;">
 
                    <div style="float: left; width: 70%;">
 
                        <div style="float: left; width: 100%;">
 
                            <div style="float: left; width: 40%;">
 
                              <div  style="float:left; width: 35%; height: auto;">
              				      <ul style="font-family:sans-serif; font-size:10px; list-style:none; margin: 0; padding: 0;" align="left">
                                    <li><?php echo $Ncabezera;  ?></li>
                                    <li> <IMG SRC="<?php  echo $fila['campo24']; ?>" width=70% height=70px; /> </li>
                                    <li>valor</li>
                                  </ul>
 
            			      </div>
 
                              <div  style="float:left; width: 65%; height: auto;">
 
                                  <ul style="font-family:sans-serif; font-size:12px; list-style:none; margin: 0; padding: 0;" align="left">
            				        <div style="margin-left: 10px;">
            					       <li><b><?php echo $fila['nombres'] ?></b> </li>
 
            					       <li><?php echo $fila['campo3'] ?> </li>
 
                					   <li><IMG SRC="images/tel.png"/> <?php echo $fila['campo5'] ?> </li>
 
                					   <li><IMG SRC="images/cel.png"> <?php echo $fila['campo6'] ?> </li>
 
                					   <li><IMG SRC="images/dir.png"> <?php echo $fila['campo4'] ?> </li>
 
                					   <li><IMG SRC="images/mail.png"> <?php echo $fila['campo7'] ?> </li>
            				        </div>
                                  </ul>
 
            			      </div>
 
                            </div>
 
                            <div style="float: left; width: 45%;">
 
                                <div style="float: left; width: 100%;">
 
                                    <div style="float: left;" >
                        				<IMG SRC="images/referido.png" class="Adias" title="<?php echo "Referido"; ?>"/>
                        			</div>
 
                        			<div style="float: right; ">
                        				<IMG SRC="images/recordatorio.png" class="Arecordatorio" title="<?php echo "Recordatorio"; ?>"/>
                        			</div>
 
                                </div>
 
                                <div style="float: left; width: 100%;">
                                    <iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" width="100%" src="https://maps.google.es/?ie=UTF8&amp;ll=3.444883,-76.437378&amp;spn=0.834815,1.352692&amp;t=m&amp;z=10&amp;output=embed"></iframe><br />
            		            </div>
 
                            </div>
 
                        </div>
 
                        <div style="float: left; width: 100%;">
 
                            <?php foreach($lista as $campo) { ?>
                                <div style="border: 3px #444;"> <?php echo $campo['comentario']; ?> </div>
                            <?php } ?>
                        </div>
 
                    </div>
 
                    <div style="float: left; width: 30%;">
 
                       <div style="float: left; width: 100%; padding: 10px 0 0 10px;">
                                <div style="float: left; width: 100%;">
                    				cuadro 1
                    			</div>
 
                    			<div style="float: left; width: 100%;">
                    				cuadro 2
                    			</div>
                        </div>
 
                    </div>
 
                </div>
 
           </div>
		<?php } ?>
 
	</body>
</html>
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 dentro de otro foreach

Publicado por xve (5522 intervenciones) el 17/03/2014 17:32:22
Hola Andres, la verdad es que es un poco dificil de seguir, sin saber el contenido de la variable $lista... (entiendo que es ese el foreach) que te falla, verdad?

Si nos puedes mostrar su contenido...
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 dentro de otro foreach

Publicado por andres (63 intervenciones) el 17/03/2014 17:58:07
Si efectivamente, mira esto es con lo que se llena la variable $lista

1
2
3
4
5
6
7
8
public function comentarios(id_pros=' ')
		{
			$this->query="
			select * from comentarios Where id_pros= 'id_pros'
			";
			$this->obtener_resultados_query();
			return $this->rows;
		}
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
Imágen de perfil de xve

Foreach dentro de otro foreach

Publicado por xve (5522 intervenciones) el 17/03/2014 18:21:07
Hola Andres, pero ahi estas utilizando variables sin el $ delante de las variables!!! no te da error?

Puedes probar así:

1
2
3
4
5
6
7
8
public function comentarios($id_pros=' ')
{
    $this->query="
    select * from comentarios Where id_pros= '".$id_pros."'
    ";
    $this->obtener_resultados_query();
    return $this->rows;
}

Coméntanos, 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 dentro de otro foreach

Publicado por andres (63 intervenciones) el 17/03/2014 18:26:10
No ya acomode eso pero sigue igual no se que pueda estar pasando
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 dentro de otro foreach

Publicado por Mari Carmen (145 intervenciones) el 18/03/2014 12:51:16
Podrías hacer un var_dump() de las dos variables ($listado y $lista) para saber que contienen exactamente cada una. Si obtienes un objeto que no sea un array, te insto a que lo transformes a uno iterando sobre el con un for.
A veces los foreach se vuelven locos con objetos de BBDD.

1
2
3
4
5
6
7
8
9
...
$comentarios= new Prospecto();
$lista = $comentarios->comentarios();
 
var_dump($listado);
var_dump($lista);
exit();
 
...
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