Foros del Web » Programando para Internet » PHP »

PHP, pChart y MySQL

Estas en el tema de PHP, pChart y MySQL en el foro de PHP en Foros del Web. Gente muy buenas noches, estoy hace unos días con esto probando ejemplos y no me funciona nada. Por lo que voy a postear para ver ...
  #1 (permalink)  
Antiguo 14/10/2014, 19:06
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
PHP, pChart y MySQL

Gente muy buenas noches, estoy hace unos días con esto probando ejemplos y no me funciona nada. Por lo que voy a postear para ver si me pueden ayudar.

Es sinceramente muy simple pero no me fucniona :(

Tengo la siguiente tabla

Se llama "cargas" y dentro tiene la columna "id" "km" "litros" "consumo"

Código:
<?php 

//las variables de conexion estan incluidas

// Conectar ala base de datos y seleccionar tabla
mysql_connect("$host","$username","$password") ;
//$conn=mysql_connect("$host", "$username", "$password") or die ("No selecciona");
mysql_select_db("$db_name");
mysql_query ("SET NAMES 'utf8'");



$resultado = mysql_query("SELECT consumo FROM `$db_name`.`$tbl_name` order by id ASC");

$ydata = array();


$index = "0";
while($ydata0 = mysql_fetch_assoc($resultado)) 
{
     $ydata[$index] = $ydata0;
     $index++;
}


//Otra cosa que tampoco funciono.
//$ydata = mysql_fetch_array($resultado);

//Otra cosa que tampoco funciono2. 
//$ydata[] = mysql_fetch_array($resultado);


require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

// Testeo de la grafica, si quito las barra la gráfica se dibuja bien.
//$ydata = array(11,3,8,12,5,1,9,13,5,7);

// Tamaño
$width=350;
$height=250;

// Create the graph and set a scale.
// These two calls are always required
$graph = new Graph($width,$height);
$graph->SetScale('intlin');

// Create the linear plot
$lineplot=new LinePlot($ydata);

// Add the plot to the graph
$graph->Add($lineplot);

// Mostrar Grafica
$graph->Stroke();
?>
Las conexiones están bien por que si selecciono un dato en particular y lo imprimo lo veo correctamente sin problemas.

Básicamente quiero imprimir el consumo que de momento solo tengo 4 ingresos.

Desde ya muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 14/10/2014, 19:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP, pChart y MySQL

Primero una cosa, seguramente necesitas una lista de valores ¿verdad?

Me imagino que este código es el que sí funciona:
Código PHP:
Ver original
  1. $ydata = array(11,3,8,12,5,1,9,13,5,7);

Bien, pues la idea es crear un array con dichos datos:
Código PHP:
Ver original
  1. $ydata = array();
  2.  
  3. while($row = mysql_fetch_assoc($resultado))
  4. {
  5.      $ydata []= $row['columna_que_contiene_el_valor_a_extraer'];
  6. }
  7.  
  8. var_dump($ydata);

Tus intentos anteriores fallan por una razón básicamente: no estás accediendo al dato que deseas, accedes al arreglo completo con todos los valores del registro:

Código PHP:
Ver original
  1. // MAL
  2. $index = "0"; // innecesario
  3. while($ydata0 = mysql_fetch_assoc($resultado))
  4. {
  5.      $ydata[$index] = $ydata0; // ¿qué valor? ¿todo el registro? $ydata0[¿qué cosa?]
  6.      $index++; // innecesario si usas la sintaxis $array []= (equivalente de array_push)
  7. }
  8.  
  9. //Otra cosa que tampoco funciono.
  10. //$ydata = mysql_fetch_array($resultado);
  11.  
  12. //Otra cosa que tampoco funciono2.
  13. //$ydata[] = mysql_fetch_array($resultado);

Es decir, nada de eso servirá porque:

a) No estás recorriendo todos los valores (para eso es el loop)
b) Extraes sólo un registro, con todos sus valores

¿Entiendes el problema?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/10/2014, 06:37
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: PHP, pChart y MySQL

Funciono perfectamente.

tuve que modificar un poco pero si es así.

Código:
//Aquí donde antes solo seleccionaba la columna KM o Consumo. 

$resultado = mysql_query("SELECT * FROM `$db_name`.`$tbl_name` order by id ASC");
$ydata = array();

while($row = mysql_fetch_assoc($resultado)) 
{
     $ydata []= $row['consumo'];
}
Pero sinceramente no entiendo la diferencia, es decir partiendo de que tu respuesta funciono y perdon por no aclarar que mi problema era pasar los datos a un array desde MySQL.
Voy a comenzar a preguntar.

Por ejemplo
Código:
$resultado = mysql_query("SELECT km FROM `$db_name`.`$tbl_name` order by id ASC");
$ydata[] = mysql_fetch_array($resultado);
Aquí no meto todos los datos del la busqueda de columna dentro del array $ydata?

Luego en este otro caso:
Código:
$resultado = mysql_query("SELECT km FROM `$db_name`.`$tbl_name` order by id ASC");
$index = "0"; // innecesario
while($ydata0 = mysql_fetch_assoc($resultado)) 
{
     $ydata[$index] = $ydata0; // Aquí no tomaria el primer valor que encuentra en la columna km que declaro en el query?
     $index++; // innecesario si usas la sintaxis $array []= (equivalente de array_push)
}
Siempre declare que la variable tiene el valor "0" gracias por ahorrarme código.
Gracias por el dato de [URL="http://php.net/manual/es/function.array-push.php"]array_push[/URL]

En este ultimo caso pensé que iría recorriendo dato por dato y los iria colocando dentro del array,
Por ejemplo comenzado por el index "0" en principio $ydata[0] tendria el primer valor del "while" que seria el primer valor encontrado por el query, en donde selecciono solo la columna km. En que me equivoque?

Gracias por tomarte un tiempo para explicarme, odio colocar cosas que no entiendo aunque funcionen.

Última edición por kapi2454; 15/10/2014 a las 14:39
  #4 (permalink)  
Antiguo 23/02/2017, 10:31
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: PHP, pChart y MySQL

Funciono perfectamente.

tuve que modificar un poco pero si es así.

Código:
//Aquí donde antes solo seleccionaba la columna KM o Consumo. 

$resultado = mysql_query("SELECT * FROM `$db_name`.`$tbl_name` order by id ASC");
$ydata = array();

while($row = mysql_fetch_assoc($resultado)) 
{
     $ydata []= $row['consumo'];
}
Pero sinceramente no entiendo la diferencia, es decir partiendo de que tu respuesta funciono y perdon por no aclarar que mi problema era pasar los datos a un array desde MySQL.
Voy a comenzar a preguntar.

Por ejemplo
Código:
$resultado = mysql_query("SELECT km FROM `$db_name`.`$tbl_name` order by id ASC");
$ydata[] = mysql_fetch_array($resultado);
Aquí no meto todos los datos del la busqueda de columna dentro del array $ydata?

Luego en este otro caso:
Código:
$resultado = mysql_query("SELECT km FROM `$db_name`.`$tbl_name` order by id ASC");
$index = "0"; // innecesario
while($ydata0 = mysql_fetch_assoc($resultado)) 
{
     $ydata[$index] = $ydata0; // Aquí no tomaria el primer valor que encuentra en la columna km que declaro en el query?
     $index++; // innecesario si usas la sintaxis $array []= (equivalente de array_push)
}
Siempre aclare que una variable tienen valor "0" gracias por ahorrarme código.
Gracias por el dato de array_push

En este ultimo caso pensé que iría recorriendo dato por dato y los iria colocando dentro del array,
Por ejemplo comenzado por el index "0" en principio $ydata[0] tendria el primer valor del "while" que seria el primer valor encontrado por el query, en donde selecciono solo la columna km. En que me equivoque?

Gracias por tomarte un tiempo para explicarme, odio colocar cosas que no entiendo aunque funcionen.

Etiquetas: mysql, select, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:49.