4 <link rel
="stylesheet" type
="text/css" href
="s.css" />
5 <script src
="js/canvastext.js"></script
>
6 <script src
="js/gnuplot_common.js"></script
>
7 <script src
="js/gnuplot_mouse.js"></script
>
10 <canvas id
="bliep" width
=900 height
=600>
11 <div id
="err_msg">No support
for HTML
5 canvas element
</div
>
14 error_reporting(E_ALL
);
15 ini_set('display_errors', '1');
18 $conn = mysqli_connect("localhost", "USER", "PASSWORD", "bliep");
20 die(sprintf("Connect error: %s\n", mysqli_connect_error()));
23 $descriptorspec = array(
24 0 => array("pipe", "r"),
25 1 => array("pipe", "w"),
26 2 => array("pipe", "w")
28 $process = proc_open('gnuplot', $descriptorspec, $pipes);
29 $tmpfile = tempnam("/tmp", "bliep");
30 $tmphandle = fopen($tmpfile, "w");
32 set term canvas size 900,600 name 'bliep'
33 set xlabel "Weeknumber"
38 set style data histograms
39 set style histogram rowstacked
40 set boxwidth 1 relative
41 set style fill solid 1.0 border -1
42 set title "Telefoon gebruik"
45 fwrite($pipes[0], $gnuplot);
46 $r = mysqli_query($conn, "
47 SELECT WEEK(date), amount, description
52 die(sprintf("Query error: %s\n", mysqli_error($conn)));
55 while($row = mysqli_fetch_array($r)){
56 if(!array_key_exists($row[0], $data)){
57 $data[$row[0]] = array(
64 $row[1] = floatval(intval($row[1])*0.01);
65 if(strpos($row[2], "sms") !== FALSE){
66 $data[$row[0]]["sms"] +
= -$row[1];
67 } else if (strpos($row[2], "Bellen") !== FALSE){
68 preg_match_all('!\d+!', $row[2], $matches);
69 $nulnegen = strstr("0900", $matches[0][0]);
70 if($nulnegen === FALSE ||
$nulnegen != 0){
71 if($matches[0][0][0] === "0"){
72 $data[$row[0]]["bel"] +
= -$row[1];
75 } else if (strpos($row[2], "pwaardering") !== FALSE){
76 $data[$row[0]]["opw"] +
= $row[1];
78 $data[$row[0]]["int"] +
= -$row[1];
81 foreach($data as $key => $row){
82 fwrite($tmphandle, sprintf("%d\t%.2f\t%.2f\t%.2f\n",
83 intval($key), $row["int"], $row["bel"], $row["sms"]));
86 fwrite($pipes[0], sprintf("
87 plot '%s' using 2 t 'internet',\
88 '' using 3 t 'bellen',\
91 fwrite($pipes[0], "quit\n");
93 $javascript = stream_get_contents($pipes[1]);
95 echo "err: " . stream_get_contents($pipes[2]);
97 $return_value = proc_close($process);
100 $r = mysqli_query($conn, "
101 SELECT amount, date, description
103 ORDER BY date DESC LIMIT 25");
105 die(sprintf("Query error: %s\n", mysqli_error($conn)));
108 echo "<tr><td>Date</td><td>Amount</td><td>Description</td></tr>\n";
109 while($row = mysqli_fetch_array($r)){
110 printf("<tr><td>%s</td><td>€%.2f</td><td>%s</td></tr>\n",
111 $row[1], intval($row[0])*0.01, $row[2]);
115 echo "<script>$javascript</script>";