Я выполняю проект аналогового измерителя температуры, который превращает дату и измерение в базу данных, и хотел сделать график с высокими диаграммами в php, обращаясь к дате и измерению, чтобы представить его на линейном графике. Запрос работает (я пробовал его отдельно, он указывает на столбец базы данных с именем date, а другой - с температурой), но со мной происходит одна любопытная вещь: у меня два разных запроса, один для оси x (категории) и один для y (данные ). Если я поставлю только один из двух запросов, либо данных, либо категорий, появится график (прилагается ниже), но если я соединю эти два запроса, он не покажет никакого графика. Я просто новичок в программировании, и я не могу найти причину ошибки. Не могли бы вы помочь мне? Большое спасибо
Highcharts Example
Твоя ошибка состоит в том, что ты открываешь два цикла без необходимости. Я имею в виду это: while ($row=mysqli_fetch_array($result)
. Необходимо понимать, что, когда ты получаешь данные, которые в этом случае находятся в $result
, что у тебя есть ahà - это указатель к данным, и каждый раз, когда ты применяешь один fetch
ты двигаешь указатель. Если tú ты применяешь while
два раза, значь, что второй раз указатель estarÃ: уже vac¦ - или, так как в первом while
уже ты это пробежал, я завершаю. Как следствие, ты должен получать все данные внутри первого while
.
Пытается следующего способа. Идея aquà - состоит в том, чтобы получать данные о линии temperatura
внутри único while
, сохранять их в переменной $temperaturas
и потом размещать их внутри элемента соответствующих data
.
Ввиду того, что c¦digo немного смущен, - возможно, что он не точно asà - и было нужно приспосабливать это. По крайней мере то, что видно, что внутри data
ir¦ - в array температуры. Если оно не функционирует, я благодарен за то, чтобы ты показал в вопросе пример конечного объекта, который должен строиться, чтобы мочь помогать тебе лучше. Ключ состоит в том, чтобы использовать while
единственный раз, чтобы доставать él данные, в которых ты нуждаешься. Ошибка состоит, как ты нуждаешься в данных в двух отличных частях, в том, чтобы использовать while
два раза.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Highcharts Example</title>
<style type="text/css">
</style>
</head>
<body>
<script src="code/highcharts.js"></script>
<script src="code/modules/exporting.js"></script>
<script src="code/modules/export-data.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto">
</div>
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$servername = "localhost";
$database = "estacion_meteo";
$username = "root";
$password = "";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$result = mysqli_query ($conn,"SELECT * FROM datos");
$temperaturas=array();
?>
<script type="text/javascript">
Highcharts.chart('container', {
chart: {
type: 'line'
},
title: {
text: 'Medición de Temperatura'
},
subtitle: {
text: 'Estación Metereológica'
},
xAxis: {
categories: [<?php while ($row=mysqli_fetch_assoc($result)) {
echo "['".$row["fecha"]."'],";
#Aunque estos datos son de yAxis los guardamos desde ahora
#porque estamos recorriendo en este bloque el puntero de los datos
$temperaturas[]=$row["temperatura"];
}
?>]
},
yAxis: {
title: {
text: 'Temperature (°C)'
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
series: [{
name: 'Temperatura',
data: [
<?php $temperaturas; #Asignamos los datos guardados en el while
?>
]
}]
});
</script>
</body>
</html>