Intereting Posts
Недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов Добавление нескольких html-флажков с тем же именем в URL с помощью $ _GET Как я могу эффективно использовать paginate с доктриной в Symfony 2? Как безопасно осуществлять аутентификацию на основе токенов для доступа к ресурсам сайта (т.е. функциям и данным), которые разрабатываются в PHPFox? Как проверить, действителен ли токен доступа, используя только REST API Google Диска? вернуться назад с отправкой формы PHP Создание PDF из HTML PHP PHP session_start (); не работает, когда инициируется в верхней части страницы Как вывести MD5 хешированный пароль в виде обычного текста? Как экспортировать контакт в CSV с моей службой? Laravel 5.2 -> Валидация Ошибки не появляются Как отобразить первую букву как прописную букву? как сгенерировать файл doc с помощью php в запрошенной связанной библиотеке openssl установлена ​​неправильная версия PHP-массив в массив Javascript

PHP: Как передать несколько переменных в массив?

В диаграмме google goi данные для диаграммы задаются этой строкой:

data.addRows([ ['2004', 1000, 400], ['2005', 1170, 460], ['2006', 860, 580], ['2007', 1030, 540] ]); 

Я хочу иметь возможность устанавливать эти данные из данных в моей базе данных. Ниже приведено изображение моей базы данных: введите описание изображения здесь

Я хочу использовать все значения salePrice и unitPrice и отображать значения на линейной диаграмме, соответствующие периоду, который они создали.

Вот мой код:

 <?php include("getteam.php"); $saleprice = mysql_query(" SELECT `outputValue` FROM `output` WHERE `teamID` = '$teamID' && `outputType` = 'salePrice' ")or die($saleprice."<br/><br/>".mysql_error()); // set ID's = to a variable and now get Outputs for each variable(teamID) $salepriceNumR = mysql_num_rows($saleprice); $sPrice = array(); $i="0"; while ($i<$salepriceNumR && $row = mysql_fetch_assoc($saleprice)) { $sPrice[$i] = $row['outputValue']; $i++; } $unitprice = mysql_query(" SELECT `outputValue` FROM `output` WHERE `teamID` = '$teamID' && `outputType` = 'unitPrice' ")or die($unitprice."<br/><br/>".mysql_error()); // set ID's = to a variable and now get Outputs for each variable(teamID) $unitpriceNumR = mysql_num_rows($unitprice); $uPrice = array(); $i="0"; while ($i<$unitpriceNumR && $row = mysql_fetch_assoc($unitprice)) { $uPrice[$i] = $row['outputValue']; $i++; } $chartrow = array(); for ($i = 0; $i < $unitpriceNumR; $i++ ) { $chartrow[$i] = "['".$i."',".$sPrice[$i].", ".$uPrice[$i]."]"; } switch ($currentStage) { case "0": case "1": $value = $chartrow[0]; break; case "2": $value = $chartrow[0].",".$chartrow[1]; break; case "3": $value = $chartrow[0].",".$chartrow[1].",".$chartrow[2]; break; default: $value = $chartrow[0]; // You should have some default value, seriously!!! } ?> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Year'); data.addColumn('number', 'Sales'); data.addColumn('number', 'Expenses'); data.addRows(JSON.parse( [<?php echo json_encode($value); ?>] )); var options = { width: 400, height: 240, title: 'Company Performance' }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> <div id="chart_div"></div> в <?php include("getteam.php"); $saleprice = mysql_query(" SELECT `outputValue` FROM `output` WHERE `teamID` = '$teamID' && `outputType` = 'salePrice' ")or die($saleprice."<br/><br/>".mysql_error()); // set ID's = to a variable and now get Outputs for each variable(teamID) $salepriceNumR = mysql_num_rows($saleprice); $sPrice = array(); $i="0"; while ($i<$salepriceNumR && $row = mysql_fetch_assoc($saleprice)) { $sPrice[$i] = $row['outputValue']; $i++; } $unitprice = mysql_query(" SELECT `outputValue` FROM `output` WHERE `teamID` = '$teamID' && `outputType` = 'unitPrice' ")or die($unitprice."<br/><br/>".mysql_error()); // set ID's = to a variable and now get Outputs for each variable(teamID) $unitpriceNumR = mysql_num_rows($unitprice); $uPrice = array(); $i="0"; while ($i<$unitpriceNumR && $row = mysql_fetch_assoc($unitprice)) { $uPrice[$i] = $row['outputValue']; $i++; } $chartrow = array(); for ($i = 0; $i < $unitpriceNumR; $i++ ) { $chartrow[$i] = "['".$i."',".$sPrice[$i].", ".$uPrice[$i]."]"; } switch ($currentStage) { case "0": case "1": $value = $chartrow[0]; break; case "2": $value = $chartrow[0].",".$chartrow[1]; break; case "3": $value = $chartrow[0].",".$chartrow[1].",".$chartrow[2]; break; default: $value = $chartrow[0]; // You should have some default value, seriously!!! } ?> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Year'); data.addColumn('number', 'Sales'); data.addColumn('number', 'Expenses'); data.addRows(JSON.parse( [<?php echo json_encode($value); ?>] )); var options = { width: 400, height: 240, title: 'Company Performance' }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> <div id="chart_div"></div> 

Проблема заключается в том, как я устанавливаю $value это строка, и поэтому данные выводятся неправильно. Есть ли способ, которым я могу установить $value чтобы я мог использовать его по назначению?

Когда $value эхо ( $currentStage является значением 3), это выводится: ['0', 0, 0], ['1', 65, 35], ['2', 88, 35]

Однако когда я просматриваю исходный код, я получаю:

  data.addRows(JSON.parse( ["['0',0, 0],['1',65, 35],['2',88, 35]"] )); 

Мне нужно избавиться от "".

Вы должны проанализировать строку JSON:

 data.addRows(JSON.parse( <?php echo json_encode($value); ?> )); 

Если я не ошибаюсь, это должно решить вашу проблему.

Редактировать На самом деле я не уверен, что понимаю, почему вы устанавливаете переменную $value в строку; вся суть json_encode заключается в том, что вы можете напрямую кодировать объекты или массивы.

Изменить 2 : Вот как я это вижу, но мой php более чем ржавый.

 <?php $chartrow = array(); for ($i = 0; $i < $unitpriceNumR; $i++ ) { $chartrow[$i] = array( (string)$i, (int)$sPrice[$i], (int)$uPrice[$i] ); } switch ($currentStage) { case "0": case "1": $value = $chartrow[0]; break; case "2": $value = array($chartrow[0], $chartrow[1]); break; case "3": $value = array($chartrow[0], $chartrow[1], $chartrow[2]); break; default: $value = $chartrow[0]; } 

Редактировать 3 Я редактировал фрагмент js, я не знаю, почему я оставил скобки вокруг тегов php.

Редактировать 4 Отредактировал PHP-код рабочей версии.