2015-08-26 6 views
5

अद्यतन करने के लिए मैं ZingChart का उपयोग कर रहा हूं। पृष्ठ को लोड करने पर चार्ट सफलतापूर्वक MySQL डेटाबेस से डेटा लोड करता है। लेकिन कुछ अंतराल के बाद जब डेटाबेस अद्यतन किया जाता है कि नवीनतम डेटा कैसे लोड किया जाए? कृपया मेरी मदद करें । मैंने ऐसा करने के लिए अपने index.php पृष्ठ में निम्न कोड का प्रयास किया है लेकिन यह काम नहीं करता है।ज़िंग चार्ट कैसे कुछ अंतराल के बाद नवीनतम डेटा लोड करने और चार्ट

<script> 
 
    
 
    var myData=[ 
 
\t <?php 
 

 

 
$conn =mysql_connect("localhost","root","") or die ("we couldn't connect!"); 
 
mysql_select_db("webauth"); 
 
$rs = mysql_query("SELECT * FROM test") or die(mysql_error()); 
 
while($row = mysql_fetch_array($rs)) 
 
{ 
 
     echo $row['label'].','; 
 
}?>]; 
 
    
 
    var myLabels=[<?php 
 

 

 
$conn =mysql_connect("localhost","root","") or die ("we couldn't connect!"); 
 
mysql_select_db("webauth"); 
 
$rs = mysql_query("SELECT * FROM test") or die(mysql_error()); 
 
while($row2 = mysql_fetch_array($rs)) 
 
{ 
 
     echo '"'.$row2['value'].'"'.','; 
 
}?>]; 
 

 

 

 
window.onload=function(){ 
 
\t 
 

 
\t 
 
\t window.alert(myData); 
 
\t zingchart.render({ 
 
\t id:'chartDiv', 
 
    
 
    data:{ 
 
     "type":"bar", 
 
\t \t 
 
     "scale-x":{ 
 
      "values":myLabels, 
 
     }, 
 
     "series":[ 
 
      { 
 
       "values":myData 
 
      } 
 
    ] 
 
\t , 
 
\t "refresh":{ 
 
    "type":"feed", 
 
    "transport":"http", 
 
    "url":"feed.php?", 
 
    "interval":200 
 
\t \t }, 
 
    } 
 
    }); 
 

 
} 
 
</script>

और में feed.php पेज

<script> 
 
    
 
    
 

 

 
    var myData=[ 
 
\t <?php 
 
?> 
 
     
 
[ 
 
    { 
 
     
 
$conn =mysql_connect("localhost","root","") or die ("we couldn't connect!"); 
 
mysql_select_db("webauth"); 
 
$rs = mysql_query("SELECT * FROM test") or die(mysql_error()); 
 
while($row = mysql_fetch_array($rs)) 
 
{ 
 
     "plot<?php echo $row['label'].','; 
 
}?>"]; 
 
    
 
     } 
 
] 
 

 
    
 
    var myLabels=[<?php 
 
?> 
 
     
 
     [ 
 
    { 
 

 
$conn =mysql_connect("localhost","root","") or die ("we couldn't connect!"); 
 
mysql_select_db("webauth"); 
 
$rs = mysql_query("SELECT * FROM test") or die(mysql_error()); 
 
while($row2 = mysql_fetch_array($rs)) 
 
{ 
 
     "plot<?php echo '"'.$row2['value'].'"'.','; 
 
}?>"]; 
 
     
 
      } 
 
] 
 
\t 
 
    </script>

+1

तो क्या आप एक HTML पृष्ठ चाहते हैं जो स्वयं पर ऑटो-रीफ्रेश करता है, या जब MySQL में डेटा बदलता है? – Drew

+0

यदि मैं AJAX का समर्थन करता हूं तो मैं ज़िंगचर्ट से परिचित नहीं हूं, लेकिन पूरे पृष्ठ को पुनः लोड करने के बजाय इसका उपयोग करने पर विचार करें। कुछ जेएस उपकरण AJAX को जानते हैं ताकि आप टाइमर या [कुछ] (http://stackoverflow.com/questions/tagged/websocket) पर अपडेट प्राप्त करने के लिए इसके लिए एक एपीआई लागू कर सकें। – mlt

+0

@ ड्रू पृष्ठ पूरी तरह रीफ्रेश नहीं करेगा, बल्कि केवल चार्ट, और हां 10 सेकंड के सेट अंतराल के बाद नहीं होगा जब डेटा mysql – phpnet

उत्तर

8

इस कोड का उपयोग कर अपने zingchart.render() विधि में, dataurl विकल्प का उपयोग डेटा विकल्प के बजाय, और इसे एल पर सेट करें अपनी PHP स्क्रिप्ट का ओसीशन जिसमें आप अपने डेटाबेस से कनेक्ट होते हैं।

window.onload=function(){ 
    zingchart.render({ 
    id:"myChart", 
    width:"100%", 
    height:400, 
    dataurl:'feed.php' 
    }); 
}; 

अब, feed.php में, कनेक्शन बनाने और मूल्यों को पुनः प्राप्त। एक बार जब आप एक PHP चर सरणी में अपने मान हो, एक अल्पविराम से मूल्यों में शामिल होने के join() उपयोग करें, और कोष्ठक के बीच सेट इतना है कि डेटा एक तरीका है कि ZingChart (JavaScript शृंखला के रूप में) को समझता में स्वरूपित किया गया है:

$dates = '[' . join($date, ',') . ']'; 
$values = '[' . join($series, ',') . ']'; 

फिर, एक ही स्क्रिप्ट से, बाहर पूरा JSON विन्यास चार्ट में प्रयोग की जाने वाली गूंज:

echo ' 
    { 
    "type" : "line", 
    "refresh" : { 
     "type" : "full", 
     "interval" : 10 
    }, 
    "scale-x":{ 
     "values":' . $dates . ', 
     "transform":{ 
     "type":"date", 
     "all":"%m/%d/%y" 
     } 
    }, 
    "series" : [ 
     { 
     "values" : ' . $values . ' 
     } 
    ] 
    }'; 

नोट करने के लिए किया जाता है कि "type" संपत्ति "full" के लिए सेट है एक पूर्ण चार्ट ताज़ा के लिए अनुमति देने के लिए महत्वपूर्ण बात यह है, मूल्यों को एक-एक करके खींचने के बजाय।

मैंने इस डेमो को ZingChart-Demos repository on Github for your perusal में जोड़ा है।

मैं ज़िंगचर्ट टीम पर हूं, तो मुझे बताएं कि आपको और मदद की ज़रूरत है या नहीं।

+1

समाधान और व्याख्या के लिए धन्यवाद – phpnet

संबंधित मुद्दे