Jump to content

Create Bar Graph Php


thelee

Recommended Posts

hello. i am still new in using php coding.i hope anybody can explain me detail how to solve my problem.i want to generate a bar graph. the value is automatically update from my total of registered user in a month.after do some research i have found a code how to build a bar graph.here is it

<?
# ------- The graph values in the form of associative array
$values=array(
"Jan" => 110,
"Feb" => 130,
"Mar" => 215,
"Apr" => 81,
"May" => 310,
"Jun" => 110,
"Jul" => 190,
"Aug" => 175,
"Sep" => 390,
"Oct" => 286,
"Nov" => 150,
"Dec" => 196
);



$img_width=450;
$img_height=300;
$margins=20;



# ---- Find the size of graph by substracting the size of borders
$graph_width=$img_width - $margins * 2;
$graph_height=$img_height - $margins * 2;
$img=imagecreate($img_width,$img_height);



$bar_width=20;
$total_bars=count($values);
$gap= ($graph_width- $total_bars * $bar_width ) / ($total_bars +1);



# ------- Define Colors ----------------
$bar_color=imagecolorallocate($img,0,64,128);
$background_color=imagecolorallocate($img,240,240,255);
$border_color=imagecolorallocate($img,200,200,200);
$line_color=imagecolorallocate($img,220,220,220);

# ------ Create the border around the graph ------


imagefilledrectangle($img,1,1,$img_width-2,$img_height-2,$border_color);
imagefilledrectangle($img,$margins,$margins,$img_width-1-$margins,$img_height-1-$margins,$background_color);



# ------- Max value is required to adjust the scale -------
$max_value=max($values);
$ratio= $graph_height/$max_value;



# -------- Create scale and draw horizontal lines --------
$horizontal_lines=20;
$horizontal_gap=$graph_height/$horizontal_lines;


for($i=1;$i<=$horizontal_lines;$i++){
$y=$img_height - $margins - $horizontal_gap * $i ;
imageline($img,$margins,$y,$img_width-$margins,$y,$line_color);
$v=intval($horizontal_gap * $i /$ratio);
imagestring($img,0,5,$y-5,$v,$bar_color);


}


# ----------- Draw the bars here ------
for($i=0;$i< $total_bars; $i++){
# ------ Extract key and value pair from the current pointer position
list($key,$value)=each($values);
$x1= $margins + $gap + $i * ($gap+$bar_width) ;
$x2= $x1 + $bar_width;
$y1=$margins +$graph_height- intval($value * $ratio) ;
$y2=$img_height-$margins;
imagestring($img,0,$x1+3,$y1-10,$value,$bar_color);
imagestring($img,0,$x1+3,$img_height-15,$key,$bar_color);
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$bar_color);
}
header("Content-type:image/png");
imagepng($img);


?>

 

 

and from the code i need to change which part so i can generate the value as like i want ? can someone help me.here is the detail of registered user

 

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
`address` varchar(100) NOT NULL DEFAULT '',
`day` int(10) NOT NULL,
`month` varchar(15) NOT NULL,
`years` int(10) NOT NULL,
`number` varchar(15) NOT NULL,
`gender` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL DEFAULT '',
`time` time NOT NULL,
`date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=114 DEFAULT CHARSET=latin1

 

<?php




$user = $fullname = $address = $day = $month =$years =$number = $gender = $email = $password = $repeatpassword = $time = $date ="";


if(isset($_POST['fullname'])) //check for existance <- ni check isset utk 1 form je dah ckp. isset tu yg biasa guna utk cek variable kosong ke x
{



//form data
$fullname= strip_tags($_POST['fullname']);
$address= strip_tags($_POST['address']);
$day=strip_tags($_POST['day']);
$month=strip_tags($_POST['month']);
$years=strip_tags($_POST['years']);
$number=strip_tags($_POST['number']);
$gender=strip_tags($_POST['gender']);
$email= strip_tags($_POST['email']);
$password= strip_tags($_POST['password']);
$repeatpassword= strip_tags($_POST['repeatpassword']);
$time = date("H:i",time());
$date = date('y/m/d', time()); ///<<<< date for registered user

// echo $fullname;


//encrypt password

//$repeatpassword=md5($repeatpassword); ni tak perlu sebab yg kau nak simpan dalam database password je so aku dah 'comment' kan. (boleh padam bila2)

if($password==$repeatpassword)
{

//check char length of username and fullname
if (strlen($email)>25||strlen($fullname)>25){
echo "email or fullname is too long!";
} else {
//check password length
if (strlen($password)>25||strlen($password)<6){
echo "your password must be between 6 to 25 characters";
} else {
//register the user!

//encrypt password
$password=md5($password);

//Open database
$connect = mysql_connect("localhost","root","");
mysql_select_db("phplogin"); //select database

$queryreg = mysql_query("

INSERT INTO users VALUES ('','$fullname','$address','$day','$month','$years','$number','$gender','$email','$password','$time','$date')

");

echo("You have been registered! <a href='index.php'>Return to login page</a>");
}
}
} else {
echo "Your password do not match!";
}

}

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.