PHP - foreach

 
Vista:
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach

Publicado por zendi (1056 intervenciones) el 20/08/2016 15:12:20
Tengo este codigo para obtener el promedio por peso:
pero no esta funcionando, solo imprime el arreglo,

array(3) { [0]=> string(6) "[5.00]" [1]=> string(6) "[6.00]" [2]=> string(6) "[7.00]" }

pero el calculo para el promedio imprime :int(0)
he tratado de muchas maneras pero no veo cual es el error.

Por favor si alguien pudiera ayudarme le agradezco.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$result = "SELECT fecha, peso, talla, circunfcefalica, circunfbrazo FROM consultas WHERE substring(public.consultas.fecha::text,1,4) = '$anio'";
 
 
$res=@pg_query($connect,$result);
 
while($registros = pg_fetch_array($res))
 
{
 
  $data[] = "[{$registros['peso']}]";
 
}
var_dump($data);
$numPeso = 0;
foreach($data as $rec) {
$numPeso+=$rec['peso'];
}
 
$promedioPeso = $numPeso / count($registros);
var_dump($promedioPeso);
 
?>
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por zendi (1056 intervenciones) el 20/08/2016 17:13:16
Bueno no es necesario un foreach para esto ya que tengo el WHILE y lo hice de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$result = "SELECT fecha, peso, talla, circunfcefalica, circunfbrazo FROM consultas WHERE substring(public.consultas.fecha::text,1,4) = '$anio'";
 
//var_dump($result);
 
$res=@pg_query($connect,$result);
 
while($registros = pg_fetch_array($res))
 
{
 
   $data[] = "[{$registros['peso']}]";
 
   $numPeso+=$registros['peso'];
 
   $promedioPeso = $numPeso / count($data);
var_dump($promedioPeso);
 
}

y ahora si obtengo el promedio, pero; ahora necesito imprimirlo de esta forma:
1
2
3
4
5
6
7
series: [<?php for($i=0,$s=count($data);$i<$s;$i++) {
 
    echo "{data: {$promedioPeso[$i]}}";
 
    if (($i+1)!=$s) echo ',';
 
}?>]


y no esta funcionando. Aqui si necesito su ayuda por favor.
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 Jose Luis León López

foreach FUNCIONA en parte

Publicado por Jose Luis León López (12 intervenciones) el 20/08/2016 19:09:33
Saludos amigo para imprimir lo que quieres debes usar concatenacion si no te va a imprimir todo como esta dentro de las comilla no se bien que es lo que quieres hacer pero por mo que me imagino quieres imprimir algo asi data{85.5} de ser asi debes poner la variable que guarda el promedio entre . o sea de la siguiente forma echo"{data: {" . $promedioPeso[$i] . "}}";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por zendi (1056 intervenciones) el 21/08/2016 03:28:57
Hola lo coloqué como me dijiste pero no imprime el grafico. Hay algo que esta faltando, que no lo veo.
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 kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por kip (877 intervenciones) el 21/08/2016 04:08:22
No esta haciendolo mal, esta usando la sintaxis compleja que provee PHP:

Sintaxis compleja (llaves)

Esta sintaxis no se llama compleja porque sea compleja, sino porque permite el empleo de expresiones complejas.

Cualquier variable escalar, elemento de array o propiedad de objeto con una representación de tipo string puede ser incluido a través de esta sintaxis. Simplemente se escribe la expresión del mismo modo en que aparecería por fuera del string, y delimitándola con { y }. Dado que { no puede ser escapado, esta sintaxis será reconocida únicamente cuando el $ siga inmediatamente al {. Utilice {\$ para obtener un {$ literal.


Deberias pasarte por el manual.

http://php.net/manual/es/language.types.string.php

Saludos
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 kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por kip (877 intervenciones) el 21/08/2016 04:05:05
Hola, que te esta imprimiendo ? podrias mostrarnos?
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por zendi (1056 intervenciones) el 21/08/2016 19:13:43
Hola kip es cierto revisé tu enlace.

fijate yo estoy tratando de imprimir un promedio en grafico con este codigo:
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
<?php
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$conn_string = "host=localhost port=5432 dbname=pediatria user=postgres password=movilnet";
 
$connect = pg_connect($conn_string);
 
 
$anio = $_POST['anio'];
 
 
$result = "SELECT fecha, peso FROM consultas WHERE substring(public.consultas.fecha::text,1,4) = '$anio'";
 
//var_dump($result);
 
$res=@pg_query($connect,$result);
 
while($registros = pg_fetch_array($res))
{
$count++;
   $data[] = "[{$registros['peso']}]";
 
   $numPeso += $registros['peso'];
 
   $promedioPeso = $numPeso / count($data);
//var_dump($promedioPeso);
 
}
?>
y como haría para imprimirla o mejor dicho colocar es variable en este trozo de codigo:
1
2
3
4
5
6
7
8
series: [<?php for($i=0,$s=count($promedioPeso);$i<$s;$i++) {
 
 //   echo "{data: {$promedioPeso[$i]}}";
echo"{data: {" . $promedioPeso[$i] . "}}";
   if (($i+1)!=$s) echo ',';
 
}?>]
  });
Yo tomé la sugerencia de Jose Luis Leon, pero no imprime y aparece vacio el grafico.

este es el grafico o imagen.
grafico
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por zendi (1056 intervenciones) el 22/08/2016 13:37:10
Hola a todos ya resolví el problema.
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
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por xve (6935 intervenciones) el 22/08/2016 14:12:11
Hola Zendi, nos puedes compartir como lo solucionaste?
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

foreach FUNCIONA en parte

Publicado por zendi (1056 intervenciones) el 22/08/2016 14:20:57
lo que hice fue imprimir la variable y asi queda por fin:

grafico

promedio por año del peso infantil.
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