thelee Posted November 12, 2012 Share Posted November 12, 2012 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!"; } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/270590-create-bar-graph-php/ Share on other sites More sharing options...
trq Posted November 12, 2012 Share Posted November 12, 2012 Cool. Do you have a question? Quote Link to comment https://forums.phpfreaks.com/topic/270590-create-bar-graph-php/#findComment-1391803 Share on other sites More sharing options...
thelee Posted November 12, 2012 Author Share Posted November 12, 2012 how i can change the value of the bar chart ? i want the "x" value is month and "y" value is registered user and it is automatically update everytime a person register. can someone help me ? Quote Link to comment https://forums.phpfreaks.com/topic/270590-create-bar-graph-php/#findComment-1391805 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.