Comunidad de diseño web y desarrollo en internet online

No puedo graficar datos tomados de mysql con php y highcharts

Citar            
MensajeEscrito el 17 May 2017 02:11 am
Estimados señores del foro,
Intento graficar los datos de un archivo .dat (archivo con datos entre ("Comillas dobles") y separados con (; PUNTO Y COMA)que he subido a mysql, para ello he usado php y las librerias que proporcionan highcharts; pero siempre me da una pantalla en blanco.
Aqui les adjunto mi código:
<?php
require_once("connection.php");
?>

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>

<style type="text/css">
#container {
min-width: 310px;
max-width: 800px;
height: 400px;
margin: 0 auto
}
</style>
</head>
<body>
<script src="../../code/highcharts.js"></script>
<script src="../../code/modules/exporting.js"></script>

<div id="container"></div>



<script type="text/javascript">

Highcharts.chart('container', {

title: {
text: 'Reporte de Piezómetros de cuerda vibrante'
},

subtitle: {
text: 'Source: CIA MINERA EL BROCAL'
},

yAxis: {
title: {
text: 'Number of Employees'
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle'
},
xAxis: {
categories: [
<?php
$sql = "SELECT * FROM location";
$result = mysqli_query($connection, $sql);
while ( $mysql = mysqli_fetch_array($result, MYSQL_ASSOC))
{
?>
'<?php echo preg_replace("/\"(\d+)\"/", '$1',$mysql["FECHA"]) ?>',
<?php

}
?>
]
},
//plotOptions: {
// series: {
//pointStart: 2010

//}
//},

series: [{
name: 'P1A_Bunits',
data: [
<?php
$sql = "SELECT * FROM location";
$result = mysqli_query($connection, $sql);
while ( $mysql = mysqli_fetch_array(integer.parseInt($result), MYSQL_ASSOC))
{
?>
<?php echo preg_replace("/\"(\d+)\"/", '$1', $mysql ["P1A_Bunits"]); ?>,
<?php

}
?>

]

}, ]

});
</script>
</body>
</html>

Por Orochimario

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2017 08:25 pm
Además de la pantalla en blanco tiene que darte un error, ya sea de JavaScript o el PHP mismo (busca por ejemplo en la pestaña Network de los dev tools en Chrome) que da una salida de error ... sino es como un juego de adivinanzas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 May 2017 09:52 pm

solisarg escribió:

Además de la pantalla en blanco tiene que darte un error, ya sea de JavaScript o el PHP mismo (busca por ejemplo en la pestaña Network de los dev tools en Chrome) que da una salida de error ... sino es como un juego de adivinanzas

Jorge


Hola Jorge,
Ya pude solucionarlo, había tipeado mal en una línea de jquery por eso no aparecia nada.
Ahora tengo un nuevo problema.

Cuando llamo a mi base de datos y almaceno lo que está dentro me desordena los datos:

Este es mi código:
<?php
error_reporting(0);
header('Content-Type: application/json');
$pdo=new PDO("mysql:dbname=mysql;host=127.0.0.1","root","");
switch($_GET['Consultar']){
// Buscar Último Dato
case 1:
$statement=$pdo->prepare("SELECT RECORDS as x, P3A_Bunits as y FROM location ORDER BY RECORDS DESC LIMIT 0,1");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json=json_encode($results);
echo $json;
break;
// Buscar Todos los datos
default:

$statement=$pdo->prepare("SELECT RECORDS as x, P3A_Bunits as y FROM location ORDER BY RECORDS ASC");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json=json_encode($results);
echo $json;
break;
}
?>


Y me aparece esto:

[{"x":"0","y":"8761.159"},{"x":"1","y":"8760.818"},{"x":"10","y":"8760.348"},{"x":"100","y":"8756.494"},{"x":"1000","y":"8756.571"},{"x":"1001","y":"8756.346"},{"x":"1002","y":"8756.632"},{"x":"1003","y":"8756.244"},{"x":"1004","y":"8756.671"},{"x":"1005","y":"8756.408"},{"x":"1006","y":"8756.659"},{"x":"1007","y":"8756.265"},{"x":"1008","y":"8756.627"},{"x":"1009","y":"8756.463"},{"x":"101","y":"8756.701"},{"x":"1010","y":"8756.677"},...

Cuando en realidad debería ser de forma ascendente empezando desde el X:0 luego X:1, X:2, etc hasta el último dato y si te das cuenta, solo los dos primero van en orden luego pasa al x:10,...
Obviamente en mi base de datos aparece de manera ordenada, empieza desde cero y se va hasta el final.
Que crees que podría estar mal?

Por Orochimario

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2017 10:00 pm
En lo que posteaste no veo ninguno desordenado:0,1,100,1000,1001, etc y son coordenadas x e y .... acaso deberían ir de a uno?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 May 2017 10:10 pm
Hola Jorge,
La ídea es que en el eje X vaya avanzando de forma ascendente en otras palabras X:1,
x:2; x:3; 4; 5... etc.

Por Orochimario

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2017 10:13 pm
Si te fijas bien, en el penúltimo datos esta el {"x":"101","y":"8756.701"}

Por Orochimario

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2017 03:05 pm
Desconozco la mecánica de la librería, pero tienes un par de opciones:

- Ordenarlas antes de mandarla como json en el cliente, en ese caso tendrías que usar

Código :

array.sort(sortfunction)
function sortfunction(a, b){ 
    return (a.x < b.x) 
}


- Si lo haces en PHP, tienes que hacer un json_decode y un array_sort de PHP (volviendo a hacer json_encode si es que lo guardas como json)
http://php.net/manual/es/function.sort.php (mira en los comentarios ejemplos de ordenar por claves)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 May 2017 04:02 pm

solisarg escribió:

Desconozco la mecánica de la librería, pero tienes un par de opciones:

- Ordenarlas antes de mandarla como json en el cliente, en ese caso tendrías que usar

Código :

array.sort(sortfunction)
function sortfunction(a, b){ 
    return (a.x < b.x) 
}


- Si lo haces en PHP, tienes que hacer un json_decode y un array_sort de PHP (volviendo a hacer json_encode si es que lo guardas como json)
http://php.net/manual/es/function.sort.php (mira en los comentarios ejemplos de ordenar por claves)

Jorge



Hola Jorge,
Ya pude solucionarlo, te cuento que la columna RECORDS de mi base de datos estaba en formato TEXT, ahora lo he cambiado a INT y ya lo ordena.

Muchas gracias por el interes en mi problema.
Saludos desde Perú.

Por Orochimario

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.