मेरे पास मेरे डेटाबेस से ये उत्तर हैं लेकिन मुझे लगता है कि यह एक सरणी में है क्योंकि जब मैं इसे अपने चार्ट में रखना चाहता हूं तो यह अंतिम का चयन करता है और 1 से 1 नहीं।

मैंने चार्ट को लूप में डालने की कोशिश की लेकिन यह तब काम नहीं किया। भले ही यह इसकी प्रतिध्वनि के साथ काम करता है।

यह स्क्रिप्ट है:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
   <script type="text/javascript">
     google.charts.load('current', {'packages':['corechart']});
     google.charts.setOnLoadCallback(drawChart);

     function drawChart() {

       var data = google.visualization.arrayToDataTable([
         ['Task', 'Hours per Day'],
         ['A',      <?php echo $count; ?>],
         ['B',      <?php echo $count; ?>],
         ['C',      <?php echo $count; ?>],
         ['D',      <?php echo $count; ?>],
         ['E',      <?php echo $count; ?>],
         ['F',      <?php echo $count; ?>]
       ]);

       var options = {
         title: 'Aantal antwoorden:'
       };

       var chart = new google.visualization.PieChart(document.getElementById('piechart'));

       chart.draw(data, options);
     }
   </script>

और इस तरह मैं चर प्राप्त करता हूं:

$aantal = $row['count(answer_id)'];
for ($meme = 1; $meme <= $aantal; $meme++) {
$countAnswerQuery = "SELECT answer_id, COUNT(*), question_id  FROM survey_answers WHERE question_id = '$meme' GROUP BY answer_id ORDER BY question_id ASC";
$countanswerresult = mysqli_query($conn, $countAnswerQuery);
if ($countanswerresult ->num_rows > 0) {
  while ($row = mysqli_fetch_array($countanswerresult)) {

    $question = $row['question_id'];
    $answer = $row['answer_id'];
    $count = $row['COUNT(*)'];

मुझे उम्मीद है कि वेरिएबल को डालने में सक्षम होना चाहिए और यह इको की तरह ही मूल्य बदलता है (जिसे मैंने शामिल नहीं किया)।

enter image description here

यह डीबी तालिका है और यह phpmyadmin में गिनती क्वेरी है: यहां छवि विवरण दर्ज करें

0
Ya like jazz 30 सितंबर 2019, 15:36

1 उत्तर

सबसे बढ़िया उत्तर

इसके साथ आपकी सभी पंक्तियाँ:

['A',      <?php echo $count; ?>]
to
['F',      <?php echo $count; ?>]

आपके पास एक ही नंबर है, इसलिए आपका परिणाम है।

सामान्य तौर पर: बस PHP के बारे में भूल जाओ, और पहले उस स्रोत को देखें जो ब्राउज़र को भेजा जाता है। यदि आपने किया तो यह आसानी से देखा गया था।

और समस्या आपके PHP कोड में निहित है, जो यह देखे बिना डीबग करना संभव नहीं है कि $count कहां से आता है।

संपादित करें:

स्पष्टीकरण देना:

यह भाग:

var data = google.visualization.arrayToDataTable([
         ['Task', 'Hours per Day'],
         ['A',      <?php echo $count; ?>],
         ['B',      <?php echo $count; ?>],
         ['C',      <?php echo $count; ?>],
         ['D',      <?php echo $count; ?>],
         ['E',      <?php echo $count; ?>],
         ['F',      <?php echo $count; ?>]
       ]);

हमेशा एक ही $ गिनती होती है। और वह सब आपके ब्राउज़र को प्राप्त होता है क्योंकि आपका वेबब्राउज़र आपके PHP या डेटाबेस प्रश्नों के बारे में नहीं जानता है। (भविष्य के डिबगिंग सत्रों के लिए यह याद रखना महत्वपूर्ण है।)

तो एक कठोर समाधान होगा:

(मुझे लगता है कि आपकी पोस्ट की गई जावास्क्रिप्ट इस उदाहरण में एक PHP फ़ाइल से आती है)

    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
       <script type="text/javascript">
         google.charts.load('current', {'packages':['corechart']});
         google.charts.setOnLoadCallback(drawChart);

         function drawChart() {

           var data = google.visualization.arrayToDataTable([
             ['Task', 'Hours per Day'],
<?php
$aantal = $row['count(answer_id)'];
for ($meme = 1; $meme <= $aantal; $meme++) {
$countAnswerQuery = "SELECT answer_id, COUNT(*), question_id  FROM survey_answers WHERE question_id = '$meme' GROUP BY answer_id ORDER BY question_id ASC";
$countanswerresult = mysqli_query($conn, $countAnswerQuery);
if ($countanswerresult ->num_rows > 0) {
  while ($row = mysqli_fetch_array($countanswerresult)) {

    $question = $row['question_id'];
    $answer = $row['answer_id'];
    $count = $row['COUNT(*)'];
    // I am guessing $answer contains A, B, C, not sure.
    echo "['" . $answer . "', {$count}],";
   }
}
?>

           ]);

           var options = {
             title: 'Aantal antwoorden:'
           };

           var chart = new google.visualization.PieChart(document.getElementById('piechart'));

           chart.draw(data, options);
         }
       </script>

जो अजाक्स अनुरोध की तुलना में बहुत बदसूरत है, लेकिन यह काम करता है।

2
Erwin Moller 30 सितंबर 2019, 15:56