Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/08/2006, 15:40
Avatar de Bullet
Bullet
 
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Que mas amigos, estuve haciendo la encuesta pero ahora con bases de datos, cree la base, hice las paginas en dreamweaver y todo eso, la encuesta funciona excelente, el problema es que despues de votar, quiero ver los resultados en un grafico de barras pero no los muestra. estoy utilizando la libreria gd de php, me carga la pagina pero no me carga la imagen de los resultados, les dejo el codigo del script de la pregunta y el de los resultados:

encuesta.php(muestra la pregunta de la encuesta)
Código PHP:
<body>
<?php
//Conectamos con la base de datos
    
require('configuracion.inc.php'); 
    
$enlace mysql_connect($host,$usuario,$password); 
    
mysql_select_db($db,$enlace); 
    
//Seleccionamos la informacion de la última encuesta insertada
    
$consulta "SELECT * FROM encuestas ORDER BY fecha DESC LIMIT 0,1"
    
$consulta mysql_query($consulta,$enlace); 
    while(
$row mysql_fetch_array($consulta)){ 
        
$titulo=$row["titulo"]; 
        
$fecha=$row["fecha"];
        
$id=$row['id'];
    }
?>
<body>
<form name="form1" method="post" action="votar.php">
  <table width="350" border="1">
    <tr> 
      <td colspan="2"><strong>Titulo</strong>: <?php echo $titulo?>
        <input type="hidden" name="id" value="<?php echo $id;?>"></td>
    </tr>
    <?php
    $sql 
"SELECT texto, id FROM respuestas WHERE idenc=\"$id\"";
    
$sql mysql_query($sql,$enlace); 
    while(
$row mysql_fetch_array($sql)){ 
        
$texto=$row["texto"]; 
        
$idres=$row["id"];
?>
    <tr> 
      <td width="51"><input type="radio" name="opcion" value="<?php echo $idres?>"></td>
      <td width="283"><?php echo $texto?></td>
    </tr>
    <?php ?>
    <tr>
      <td><input type="submit" name="Submit" value="Enviar"></td>
        
      <td>Esta encuesta est&aacute; desde el <?php echo date('d-m-y',$fecha); ?></td>
    </tr>
    <tr>
      <td colspan="2"><a href="votar.php">Ver resultados</a></td>
    </tr>
  </table>
</form>
</body>
votar.php (hace las votaciones de la encuesta)
Código PHP:
<? 
require('configuracion.inc.php'); 
$enlace mysql_connect($host$usuario$password); 
mysql_select_db($db,$enlace);
        
//Obtenemos el titulo de la encuesta
$consulta "SELECT titulo FROM encuestas ORDER BY fecha DESC LIMIT 1,0";
$consulta mysql_query($consulta,$enlace); 
$lado=mysql_num_rows($consulta);
while(
$row mysql_fetch_array($consulta)){ 
    
$titulo$row['titulo'];
}
        
//Obtenemos el numero actual de votos para la opción elegida
//Comprobamos si $opcion no está vacío porque posteriormente este mismo 
//fichero lo utilizaremos para ver resultados sin tener que votar necesariamente
if(!empty($opcion)) {
    
$consulta "SELECT votos FROM respuestas WHERE id=$opcion"
    
$consulta mysql_query($consulta,$enlace); 
    
$lado=mysql_num_rows($consulta);
    while(
$row mysql_fetch_array($consulta)){ 
        
$votos$row['votos'];
    }
        
//Incrementamos en uno los votos totales
    
$votos $votos 1;
//Y actualizamos la base de datos
    
$consulta "UPDATE respuestas SET votos = $votos WHERE id=$opcion";
    
mysql_query($consulta,$enlace);
}
?>
<img src="dgrafica.php">
dgrafica.php(script que dibuja la imagen del grafico de barras)
Código PHP:
<?php
//Fijaos en que esta vez tenéis que añadir vosotros la informacion en mysql_connect
$enlace mysql_connect('localhost','root','0000');
mysql_select_db('encuestas');

//Obtenemos el titulo de la última encuesta para colocarlo como título en nuestro gráfico
$consulta "SELECT titulo, id FROM encuestas ORDER BY fecha DESC LIMIT 0,1";
$consulta mysql_query($consulta,$enlace); 
$lado=mysql_num_rows($consulta);
while(
$row mysql_fetch_array($consulta)){ 
  
$titulo$row['titulo'];
  
$id=$row['id'];
}

//Obtenemos el numero de votos de cada opcion y los metemos en "votos[]"
$consulta "SELECT votos, texto FROM respuestas WHERE idenc=$id";
$consulta mysql_query($consulta,$enlace); 
$lado=mysql_num_rows($consulta);
while(
$row mysql_fetch_array($consulta)){ 
  
//Guardamos el texto en la variable temp. Este texto nos servirá como 
    //índice en el array votos[]
  
$temp $row['texto'];
  
$votos[$temp]= $row['votos'];
}

//Variables del gráfico
$width 500;         //Ancho de la imagen
$espacioCol 30;    //Espacio que habrá del principio de una columna a otra
$altoCol 15;        //El alto de las columnas
$height 2*count($votos)*$espacioCol+45;    //El alto de la imagen
$maxvoto max($votos);    //Valor de la opcion mas votada
$maxlargo $width-50;        //Largo que tendrá la opción mas votada
$coeficiente = (int)($maxlargo $maxvoto);    //Coeficiente para calcular el largo de cada opcion

//Creamos la imagen con el alto y ancho asignados anteriormente    
$image imagecreate($width,$height);

//Declaramos variables para los colores.    Al ser el gris el primer color que 
//declaramos, éste se quedará como color de fondo en la imagen
$gray imagecolorallocate($image0xC00xC00xC0);
$black imagecolorallocate($image0x000x000x00);
$blue imagecolorallocate($image0x000x000xFF);

//Recorremos el array 'votos'
for($i=0; list($texto$vot) = each($votos); $i++) {

  
$labelfont 2//Fuente empleada para etiquetas
  //Dibujamos las barras
  //Coordenadas para definir el rectángulo
  
$valign = ($i+1)*$espacioCol 15;
  
$halign 30;
  
$valign2 $valign $altoCol;
  
$halign2 $halign+$vot*$coeficiente;
  
imagefilledrectangle($image,$halign,$valign,$halign2,$valign2,$blue);
  
  
//Ponemos el índice de cada barra
  //Coordenadas para colocar los indices
  
$indice $i 1;
  
$halign 15;
  
imagestring($image$labelfont$halign$valign$indice$black);
  
  
//Leyenda: Numero de opcion + Texto + ( votos )
  //Coordenadas para colocar la leyenda
  
$valign = ($i+1)*$espacioCol + (count($votos)*$espacioCol)+ 15;
  
$halign 30;
  
$leyenda "Opcion ".$indice.": ".$texto." ($vot)";
  
imagestring($image$labelfont$halign$valign$leyenda$black);        
}

//Asignamos tipografía y colocamos el título en la parte superior izquierda
$titlefont 3;
imagestring($image$titlefont1010$titulo$black);

//Dibujamos el recuadro que encierra el contenido
imagerectangle($image$width 5305$height 5$black);    

//Devolvemos la imagen
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
como informacion adicional, stoy usando en AppServ 2.5.6 para windows, pero lo q nnose es si se requiere configurar el php.ini, yo lo revise y vi que todo estaba bien, segun el tutorial de la encuesta, lo unico es q no me muestra los resultados. El php.ini trae el php_gd2.dll como libreria para imagenes, pero mi duda es hay que cambiar el php_gd2 por el php_gd? y de ser asi, donde puedo conseguir el php_gd?

Espero puedan ayudarme. Saludos