Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/09/2005, 12:01
Avatar de cosuroca
cosuroca
 
Fecha de Ingreso: septiembre-2005
Mensajes: 25
Antigüedad: 18 años, 7 meses
Puntos: 0
o bueno te puedes guiar de este codigo que recojo del libro de ANAYA!!!

Necesitas los privilegios de un usario en mysql!!!

pollsetup.sql
Código:
create database poll;

use poll;

create table poll_results (
			     candidate varchar(30),
			     num_votes int
);

insert into poll_results values 
  ('John Smith', 0),
  ('Mary Jones', 0),
  ('Fred Bloggs', 0)
; 

grant all privileges
on poll.*			
to poll@localhost 
identified by 'poll';

show_poll.php

Código PHP:
<?php
/*******************************************
  Database query to get poll info 
*******************************************/

// get vote from form
$vote=$_REQUEST['vote'];

// log in to database 
if (!$db_conn mysql_connect('localhost''poll''poll'))
{
  echo 
'Could not connect to db<br />';
  exit;
};
@
mysql_select_db('poll');

if (!empty(
$vote))  // if they filled the form out, add their vote
{
  
$vote addslashes($vote); 
  
$query "update poll_results
            set num_votes = num_votes + 1
            where candidate = '$vote'"
;
  if(!(
$result = @mysql_query($query$db_conn)))
  {
    echo 
'Could not connect to db<br />';
    exit;
  }
};

// get current results of poll, regardless of whether they voted 
$query 'select * from poll_results';
if(!(
$result = @mysql_query($query$db_conn)))
{
  echo 
'Could not connect to db<br />';
  exit;
}
$num_candidates mysql_num_rows($result); 

// calculate total number of votes so far
$total_votes=0;
while (
$row mysql_fetch_object ($result)) 
{
    
$total_votes +=  $row->num_votes;
}
mysql_data_seek($result0);  // reset result pointer


/*******************************************
  Initial calculations for graph 
*******************************************/
// set up constants
putenv('GDFONTPATH=C:\WINDOWS\Fonts');
$width=500;        // width of image in pixels - this will fit in 640x480
$left_margin 50// space to leave on left of graph
$right_margin50// ditto right   
$bar_height 40;  
$bar_spacing $bar_height/2
$font 'arial';
$title_size16// point
$main_size12// point
$small_size12// point
$text_indent 10// position for text labels from edge of image

// set up initial point to draw from
$x $left_margin 60;  // place to draw baseline of the graph
$y 50;          // ditto 
$bar_unit = ($width-($x+$right_margin)) / 100;   // one "point" on the graph

// calculate height of graph - bars plus gaps plus some margin
$height $num_candidates * ($bar_height $bar_spacing) + 50;   

/*******************************************
  Set up base image 
*******************************************/
// create a blank canvas
$im ImageCreateTrueColor($width,$height);   
     
// Allocate colors   
$white=ImageColorAllocate($im,255,255,255);   
$blue=ImageColorAllocate($im,0,64,128);   
$black=ImageColorAllocate($im,0,0,0);   
$pink ImageColorAllocate($im,255,78,243); 

$text_color $black;
$percent_color $black;
$bg_color $white;
$line_color $black;
$bar_color $blue;
$number_color $pink;

// Create "canvas" to draw on 
ImageFilledRectangle($im,0,0,$width,$height,$bg_color);   

// Draw outline around canvas 
ImageRectangle($im,0,0,$width-1,$height-1,$line_color);   

// Add title
$title 'Poll Results';
$title_dimensions ImageTTFBBox($title_size0$font$title);
$title_length $title_dimensions[2] - $title_dimensions[0];
$title_height abs($title_dimensions[7] - $title_dimensions[1]);
$title_above_line abs($title_dimensions[7]);
$title_x = ($width-$title_length)/2;  // center it in x 
$title_y = ($y $title_height)/$title_above_line// center in y gap
ImageTTFText($im$title_size0$title_x$title_y
             
$text_color$font$title);  

// Draw a base line from a little above first bar location 
// to a little below last  
ImageLine($im$x$y-5$x$height-15$line_color);   

/*******************************************
  Draw data into graph 
*******************************************/
// Get each line of db data and draw corresponding bars   
while ($row mysql_fetch_object ($result)) 
{
  if (
$total_votes 0)
    
$percent intval(round(($row->num_votes/$total_votes)*100));
  else 
    
$percent 0;

  
// display percent for this value  
  
$percent_dimensions ImageTTFBBox($main_size0$font$percent.'%');
  
$percent_length $percent_dimensions[2] - $percent_dimensions[0];
  
ImageTTFText($im$main_size0$width-$percent_length-$text_indent
               
$y+($bar_height/2), $percent_color$font$percent.'%');  
  
  if (
$total_votes 0)
    
$right_value intval(round(($row->num_votes/$total_votes)*100));
  else
    
$right_value 0;

  
// length of bar for this value   
  
$bar_length $x + ($right_value $bar_unit);   

  
// draw bar for this value   
  
ImageFilledRectangle($im$x$y-2$bar_length$y+$bar_height$bar_color);   

  
// draw title for this value   
  
ImageTTFText($im$main_size0$text_indent$y+($bar_height/2), 
               
$text_color$font"$row->candidate");  

  
// draw outline showing 100% 
  
ImageRectangle($im$bar_length+1$y-2
                (
$x+(100*$bar_unit)), $y+$bar_height$line_color);   

  
// display numbers   
  
ImageTTFText($im$small_size0$x+(100*$bar_unit)-50$y+($bar_height/2),
               
$number_color$font$row->num_votes.'/'.$total_votes);

  
// move down to next bar
  
$y=$y+($bar_height+$bar_spacing);   
}   

/*******************************************
  Display image 
*******************************************/
Header('Content-type:  image/png');
ImagePNG($im);   

/*******************************************
  Clean up 
*******************************************/
ImageDestroy($im);   
?>

el cual el envio de datos es :

vote.html or vote.php
Código:
<html>
<head>
  <title>Polling</title>
<head>
<body>
<h1>Pop Poll</h1>
<p>Who will you vote for in the election?</p>
<form method=post action="show_poll.php">
<input type=radio name=vote value="John Smith">John Smith<br />
<input type=radio name=vote value="Mary Jones">Mary Jones<br />
<input type=radio name=vote value="Fred Bloggs">Fred Bloggs<br /><br />
<input type=submit value="Show results">
</form>
</body>