Wykres jqplot z jquery ajax i baza danych

Wszystko związane ze skryptami JS, DHTML itd.
ciupakabrans
Posty: 1
Rejestracja: 13 mar 2014, 16:17:17
Płeć: Niewybrana
User Agent: Chrome Windows

Wykres jqplot z jquery ajax i baza danych

Post autor: ciupakabrans »

Próbuje zrobić sobie wykres liniowy w jqplot, ale mam problem z wygenerowaniem odpowiedniej tablicy z danymi żeby została wczytana przez jqplot.
to kod pobierający dane z bazy - mam tam tabele w której są wypisane miesiące, oraz ilość opadów (w danym mies):

Kod: Zaznacz cały

 $host = "localhost";
  $user = "root";
  $pass = "";
 
  $databaseName = "wykres";
  $tableName = "opady";
 
  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);
 
  $result = mysql_query("SELECT miesiac, ilosc FROM $tableName");          
$miesiac = array();
$ilosc = array();
$tab = array();
while ($row = mysql_fetch_array($result, MYSQL_NUM))  {                    
    array_push($miesiac, $row[0]);
    array_push($ilosc, $row[1]);
}
 
echo  json_encode(array('ilosc' => $ilosc, 'miesiac'=>$miesiac)); 

i tu pojawia się pierwszy problem czy powinienem tą pętle while oraz echo json zapisać tak jak jest, czy tak:

Kod: Zaznacz cały

while ($row = mysql_fetch_array($result, MYSQL_NUM))  {                    
    array_push($tab, $row);
}
  
Kolejny problem to jak przetworzyć to aby wykres został poprawnie narysowany, mam taki kod:

Kod: Zaznacz cały

...
 $(function () 
  {
    $.ajax({                                      
      url: 'db.php',                            
      data: "",                                                     
      dataType: 'json',               
      success: function(dane)          
      {       
 
       var tablica=  dane;
 
    var plot2 = $.jqplot ('chart1', [[tablica]], 
 
 title: 'wykres',  
      axesDefaults: {
        labelRenderer: $.jqplot.CanvasAxisLabelRenderer
      },
      axes: {
 
        xaxis: {
          label: "miesiac",
          pad: 0
        },
        yaxis: {
          label: "opady"
        }
      }
    });
    } 
    });
}); 
  </script>
      
        <div id="chart1"></div>
    </body>
</html>
i nie do końca wiem jak powinna jak powinienem zapisać te przesłane dane żeby tablica - [[tablica]], wyglądała w ten sposób

$tablica = [['styczen', 12], ['luty',15], ['marzec',32], ['kwiecien',20],
['maj',50], ['czerwiec',62], ['lipiec',45], ['sierpien',34],
['wrzesien',74], ['pazdziernik',63], ['listopad',23], ['grudzien',10]];
jarzyn112
Posty: 17
Rejestracja: 18 paź 2014, 10:23:11
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768

Wykres jqplot z jquery ajax i baza danych

Post autor: jarzyn112 »

nie testowane, ale powinno dać Ci tablicę dwuwymiarową, tak jak chcesz.

Kod: Zaznacz cały

$host = "localhost";
  $user = "root";
  $pass = "";
 
  $databaseName = "wykres";
  $tableName = "opady";
 
  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);
 
  $result = mysql_query("SELECT miesiac, ilosc FROM $tableName");          
$tmp = ['',''];
$tab = array();
while ($row = mysql_fetch_array($result, MYSQL_NUM))  {                    
    $tmp = [$row[0], $row[1]];
    array_push($tab, $tmp]);
}
unset($tmp);
echo  json_encode($tab);
exit(0); 
ODPOWIEDZ