У меня есть база данных с 5 столбцами, ID, customerName, dateYear, dateMonth и dateDay. Столбцы даты добавляются в базу данных, когда пользователь отправляет форму. Так, например, если пользователь отправил форму сегодня, у 3 столбцов будет 2016, июнь и 7. Я хочу сделать диаграмму D3, которая может вытащить эту информацию и отобразить, сколько форм было отправлено каждый месяц/год. У меня есть список флажков в HTML для администратора, чтобы выбрать один или несколько месяцев и год.D3 Bar Chart Устранение неполадок
<input type="submit" name="monthlyReport" value="Generate a Monthly Report for:" />
<br>
<input type="checkbox" value="January" name="monthList[]"/>January
<br>
<input type="checkbox" value="February" name="monthList[]"/>February
и т.д ...
<select name="selyear1">
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
Вот мой PHP код, который принимает пользовательский ввод и превращает его в запросе:
$monthList = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$yearList = array("2016", "2017", "2018", "2019", "2020");
$monthlyReport = isset($_POST["monthlyReport"]) ? $_POST["monthlyReport"] : "";
$monthList = array();
$monthList = isset($_POST["monthList"]) ? $_POST["monthList"] : "";
$selectedYear = isset($_POST["selyear1"]) ? $_POST["selyear1"] : "";
if(isset($monthlyReport) && !empty($monthList) && in_array($selectedYear, $yearList)) {
foreach ($monthList as $month){
if (in_array($month, $monthList)) {
$stmt = $conn->prepare("SELECT dateYear, dateMonth FROM just_ink WHERE dateMonth = :month AND dateYear= :year");
$stmt->execute(array(":month" => $month, ":year"=> $selectedYear));
$result[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
}
var_dump($result);
$ Результат будет дамп это:
array(2) { [0]=> array(1) { [0]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(7) "January" } } [1]=> array(2) { [0]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(4) "June" } [1]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(4) "June" } } }
Итак, как именно я поворачиваю этот результат в гистограмму D3? Я смотрю на советы и трюки d3Noob, но это более сложный случай, который я считаю. Спасибо заранее за ответы!
Что значение, которое вы хотите построить график? Я не могу увидеть его в вашем дампе – torresomar
@torresomar Например, если у меня есть две строки, содержащие «Июнь», я хочу, чтобы в баре было значение X «Июнь» и значение Y «2», – KoalatyCode