зацикливать данные в гугл-графике, чтобы у меня было несколько версий графика PHP - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь создать диаграмму Google, которая будет изменять данные при нажатии. Когда жестко закодировано все работает хорошо. Таким образом, сама диаграмма Google работает нормально.

У меня проблема с PHP. В базе данных у меня есть столбец с именем teachers. Есть 3 учителя. Я получаю учителей, как это:

 // GET TEACHERS

        $teacherIDsql = "SELECT teacher_id FROM `dancers` WHERE school = '$ownerSchool'";
        $teacherIDres = mysqli_query($con,$teacherIDsql);
         while($idData=mysqli_fetch_array($teacherIDres)){
             $teacher_Id = $idData['teacher_id'];
         }

        $teachersql2 = "SELECT DISTINCT teacher_name, teacher_id, current_lvl FROM `dancers` WHERE school = '$ownerSchool' AND teacher_id = '$teacher_Id'";
        $teacherres2 = mysqli_query($con,$teachersql2);

Я хочу сделать еще один вызов данных для каждого учителя в столбце, чтобы у меня было 3 версии диаграммы Google, поэтому мне нужно пройтись по следующим вызовам учителей, и я попытался сделать это следующим образом:

while($chartData2=mysqli_fetch_array($teacherres2)){
             $teacher_Id2 = $chartData2['teacher_id'];
             $teacherNames2 = $chartData2['teacher_name'];
             $teacherNames2 = str_replace(' ', '', $teacherNames2);
             $teacherNames2 = str_replace('.', '', $teacherNames2);
             $var2 = 'data';
             $newVar2 = $var2 . $teacher_Id2 . $teacherNames2;

             $teachersql3 = "SELECT current_lvl FROM `dancers` WHERE school = '$ownerSchool' AND teacher_id = 6";
        $teacherres3 = mysqli_query($con,$teachersql3);

После этого я начинаю пытаться получить другие данные, необходимые для диаграммы, которые также должны быть зациклены:

         while($lvlrow3 = mysqli_fetch_array($teacherres3)){
                 $placed2[] = $lvlrow3['current_lvl'];

             }


             $placeNum2 = array_count_values($placed2);
             $lvl_preBeginner = isset($placeNum["Pre Beginner"]) ? $placeNum["Pre Beginner"] : 0;
             $lvl_beginner = isset($placeNum["Beginner"]) ? $placeNum["Beginner"] : 0;
             $lvl_advanced = isset($placeNum["Advanced Beginner"]) ? $placeNum["Advanced Beginner"] : 0;
             $lvl_novice = isset($placeNum["Novice"]) ? $placeNum["Novice"] : 0;
             $lvl_prizeWinner = isset($placeNum["Prize Winner"]) ? $placeNum["Prize Winner"] : 0;
             $lvl_prelim = isset($placeNum["Prelim Champion"]) ? $placeNum["Prelim Champion"] : 0;
             $lvl_open = isset($placeNum["Open Champion"]) ? $placeNum["Open Champion"] : 0;
             $lvl_major = isset($placeNum["Major"]) ? $placeNum["Major"] : 0;


            $preB_decimal2 = $lvl_preBeginner / $total_students;
             $preB_percent2 = round((float)$preB_decimal * 100 ) . '%';

             $beginner_decimal2 = $lvl_beginner / $total_students;
             $beginner_percent2 = round((float)$beginner_decimal * 100 ) . '%';


             $advanced_decimal2 = $lvl_advanced / $total_students;
             $advanced_percent2 = round((float)$advanced_decimal * 100 ) . '%';

             $novice_decimal2 = $lvl_novice / $total_students;
             $novice_percent2 = round((float)$novice_decimal2 * 100 ) . '%';

             $prizeWinner_decimal2 = $lvl_prizeWinner / $total_students;
             $prizeWinner_percent2 = round((float)$prizeWinner_decimal2 * 100 ) . '%';

             $prelim_decimal2 = $lvl_prelim / $total_students;
             $prelim_percent2 = round((float)$prelim_decimal2 * 100 ) . '%';

             $open_decimal2 = $lvl_open / $total_students;
             $open_percent2 = round((float)$open_decimal * 100 ) . '%';

             $major_decimal2 = $lvl_major / $total_students;
             $major_percent2 = round((float)$major_decimal2 * 100 ) . '%';

             $total_students2 = $lvl_preBeginner + $lvl_beginner + $lvl_advanced + $lvl_novice + $lvl_prizeWinner + $lvl_prelim + $lvl_open + $lvl_major;
        ?>

и после того, как я получаю данные, я пытаюсь зациклить все данные диаграммы следующим образом:

//CHART BY TEACHERS
        var <?php echo $newVar2; ?> = google.visualization.arrayToDataTable([
            ['<? $total_students2; ?> Pre-Beginners', '<?php $lvl_beginner; ?> Beginners', '<?php $lvl_advanced; ?> Advanced Beginners', '<?php echo $lvl_novice; ?> Novices', '<?php echo $lvl_prizeWinner; ?> Prize Winners', '<?php $lvl_prelim; ?> Prelim Champions', '<?php echo $lvl_open; ?> Open Champions', '<?php echo $lvl_major; ?> Majors'],
            ['<?php echo $preB_percent2; ?>', '<?php echo $beginner_percent2; ?>', '<?php echo $advanced_percent2; ?>', '<?php echo $novice_percent2; ?>', '<?php echo $prizeWinner_percent2; ?>', '<?php echo $prelim_percent2; ?>', '<?php echo $open_percent2; ?>', '<?php echo $major_percent2; ?>']
        ]);

        <?php } ?>

Когда я просматриваю исходный код страницы, я вижу только одно:

//CHART BY TEACHERS
        var data5MsLee = google.visualization.arrayToDataTable([
            [' Pre-Beginners', ' Beginners', ' Advanced Beginners', '2 Novices', '0 Prize Winners', ' Prelim Champions', '1 Open Champions', '0 Majors'],
            ['0%', '0%', '0%', '67%', '0%', '0%', '33%', '0%']
        ]);

Но я пытаюсь добиться этого:

//CHART BY TEACHERS
        var data5MsLee = google.visualization.arrayToDataTable([
            [' Pre-Beginners', ' Beginners', ' Advanced Beginners', '2 Novices', '0 Prize Winners', ' Prelim Champions', '1 Open Champions', '0 Majors'],
            ['0%', '0%', '0%', '67%', '0%', '0%', '33%', '0%']
        ]);

        var data13MrCarter = google.visualization.arrayToDataTable([
            [' 10 Pre-Beginners', ' Beginners', ' Advanced Beginners', '2 Novices', '0 Prize Winners', ' Prelim Champions', '0 Open Champions', '3 Majors'],
            ['67%', '0%', '0%', '13%', '0%', '0%', '33%', '20%']
        ]);

        var data47MsLiz = google.visualization.arrayToDataTable([
            [' Pre-Beginners', ' Beginners', ' Advanced Beginners', '2 Novices', '0 Prize Winners', ' Prelim Champions', '1 Open Champions', '0 Majors'],
            ['0%', '0%', '0%', '67%', '0%', '0%', '33%', '0%']
        ]);

Наконец, в конце я добавляю событие щелчка, которое зацикливается по моему желанию.

Может кто-нибудь сказать мне, где я иду не так? Или есть более эффективный способ добиться этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...