Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a) Creacin de graficos
Representacin de encuestas generando el grafico de barras de los resultados de los votos a partir
de una imagen
CREATE TABLE votos
(
id INT AUTO_INCREMENT,
votos1 INT NOT NULL DEFAULT 0,
votos2 INT NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
INSERT INTO votos VALUES (1,0,0);
<HTML>
<BODY>
<?PHP
$enviar = $_REQUEST[enviar];
if (isset($enviar))
{
$connection = mysql_connect("localhost","root","");
mysql_select_db("matriculas");
//Obtener votos actuales
$instruccion = "select votos1, votos2 from votos";
$consulta = mysql_query($instruccion,$connection);
$resultado = mysql_fetch_array($consulta);
//Actualizar votos
$votos1 = $resultado[votos1];
$votos2 = $resultado[votos2];
$voto = $_REQUEST[voto];
if ($voto == "si")
$votos1 = $votos1 + 1;
else if ($voto == "no")
$votos2 = $votos2 + 1;
$instruccion = "update votos set votos1=$votos1, votos2=$votos2";
$actualizacion = mysql_query($instruccion,$connection);
mysql_close($connection);
print "<P>Su voto ha sido registrado</P>";
print "<A HREF='encuesta-resultados.php'>Ver resultados</A>";
}
else
{
?>
<H1>Encuesta</H1>
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
</TD>";
print "</TR>";
$porcentaje = round(($votos2/$totalVotos)*100,2);
print "<TR>";
print "<TD CLASS='izquierda'>No</TD>";
print "<TD CLASS='derecha'>$votos2</TD>";
print "<TD CLASS='derecha'>$porcentaje%</TD>";
print "<TD CLASS='izquierda'>
<IMG SRC='img/puntoamarillo.gif' HEIGHT='10' WIDTH='".$porcentaje*4 ."'>
</TD>";
print "</TR>";
print "</TABLE>";
print "<P>Nmero total de votos emitidos: $totalVotos </P>";
print "<P><A HREF='encuesta.php'>Pgina de votacin</A></P>";
mysql_close($connection);
?>
</BODY>
</HTML>
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
noticias.html
<html>
<style type="text/css">
body
{
background-color: #FC0;
}
</style>
<body>
<table align="center">
<tr>
<td><img src="img/Cabecera.png"></td>
</tr>
<tr>
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
<td><ul>
<li><a href="Consulta_noticias.php">ver noticias</a></li>
<li><a href="inserta_noticia.php">agregar noticias</a></li>
<li><a href="elimina_noticia.php">eliminar noticias</a></li>
</ul></td>
</tr>
</table>
</body>
</html>
consulta_noticias.php
<HTML>
<BODY>
<H1>Consulta de noticias</H1>
<FORM ACTION="consulta_noticias.php" METHOD="POST">
<P>Mostrar noticias de la categora:
<SELECT NAME="categoria">
<OPTION VALUE="Todas" SELECTED>Todas
<OPTION VALUE="Pedidos">Pedidos
<OPTION VALUE="Ofrecidos">Ofrecidos
</SELECT>
<INPUT TYPE="submit" NAME="actualizar" VALUE="Actualizar"></P>
</FORM>
<?PHP
// Conectar con el servidor de base de datos
$conexion = mysql_connect("localhost", "root", "")
or die(mysql_error());
// Seleccionar base de datos
mysql_select_db("matriculas")
or die(mysql_error());
// Enviar consulta
$instruccion = "select * from noticias";
$actualizar = $_REQUEST[actualizar];
$categoria = $_REQUEST[categoria];
if (isset($actualizar) && $categoria != "Todas")
$instruccion = $instruccion." where categoria='$categoria'";
$instruccion = $instruccion." order by fecha desc";
$consulta = mysql_query($instruccion, $conexion)
or die(mysql_error());
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows($consulta);
if ($nfilas > 0)
{
print "<TABLE border=1>";
print "<TR>";
print "<TH>Ttulo</TH>";
print "<TH>Texto</TH>";
print "<TH>Categora</TH>";
print "<TH>Fecha</TH>";
print "<TH>Imagen</TH>";
print "</TR>";
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array($consulta);
print "<TR>";
print "<TD>".$resultado[titulo]."</TD>";
print "<TD>".$resultado[texto]."</TD>";
print "<TD>".$resultado[categoria]."</TD>";
print "<TD>".$resultado[fecha]."</TD>";
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
if ($resultado[imagen] != "")
print "<TD>
<A TARGET='_blank' HREF='img/".$resultado[imagen]."'>
<IMG SRC='img/ico-fichero.gif'></A>
</TD>";
else
print "<TD></TD>";
print "</TR>";
}
print "</TABLE>";
}
else
print "No hay noticias disponibles";
// Cerrar conexin
mysql_close($conexion);
print ("[ <A HREF='noticias.html'>retornar</A> ]")
?>
</BODY>
</HTML>
inserta_noticia.php
<HTML>
<BODY>
<?PHP
// Obtener valores introducidos en el formulario
$insertar = $_REQUEST['insertar'];
$titulo = $_REQUEST['titulo'];
$texto = $_REQUEST['texto'];
$categoria = $_REQUEST['categoria'];
$error = false;
if (isset($insertar))
{
// Comprobar que se han introducido todos los datos obligatorios
// Ttulo
if (trim($titulo) == "")
{
$errores["titulo"] = "Debe introducir el ttulo de la noticia!";
$error = true;
}
else
$errores["titulo"] = "";
// Texto
if (trim($texto) == "")
{
$errores["texto"] = "Debe introducir el texto de la noticia!";
$error = true;
}
else
$errores["texto"] = "";
// Subir fichero
$copiarFichero = false;
// Copiar fichero en directorio de ficheros subidos
// Se renombra para evitar que sobreescriba un fichero existente
// Para garantizar la unicidad del nombre se aade una marca de tiempo
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$nombreFichero = $_FILES['imagen']['name'];
$copiarFichero = true;
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
<BODY>
<H1>Eliminacin de noticias</H1>
<?PHP
$eliminar = $_REQUEST['eliminar'];
if (isset($eliminar))
{
// Conectar con el servidor de base de datos
$conexion = mysql_connect ("localhost", "root", "")
or die (mysql_error());
// Seleccionar base de datos
mysql_select_db ("matriculas")
or die (mysql_error());
// Obtener nmero de noticias a borrar
$borrar = $_REQUEST['borrar'];
$nfilas = count ($borrar);
// Mostrar noticias a borrar
for ($i=0; $i<$nfilas; $i++)
{
// Obtener datos de la noticia i-sima
$instruccion = "select * from noticias where id = $borrar[$i]";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
$resultado = mysql_fetch_array ($consulta);
// Mostrar datos de la noticia i-sima
print ("Noticia eliminada:\n");
print ("<UL>\n");
print (" <LI>Ttulo: " . $resultado['titulo']);
print (" <LI>Texto: " . $resultado['texto']);
print (" <LI>Categora: " . $resultado['categoria']);
print (" <LI>Fecha: " . $resultado['fecha']);
if ($resultado['imagen'] != "")
print (" <LI>Imagen: " . $resultado['imagen']);
else
print (" <LI>Imagen: (no hay)");
print ("</UL>\n");
// Eliminar noticia
$instruccion = "delete from noticias where id = $borrar[$i]";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la eliminacin");
// Borrar imagen asociada si existe
if ($resultado['imagen'] != "")
{
$nombreFichero = "img/" . $resultado['imagen'];
unlink ($nombreFichero);
}
}
print ("<P>Nmero total de noticias eliminadas: " . $nfilas . "</P>\n");
// Cerrar conexin
mysql_close ($conexion);
print ("<P>[ <A HREF='noticias.html'>retornar</A> ]</P>\n");
}
else
{
// Conectar con el servidor de base de datos
$conexion = mysql_connect ("localhost", "root", "")
or die ("No se puede conectar con el servidor");
// Seleccionar base de datos
mysql_select_db ("matriculas")
or die ("No se puede seleccionar la base de datos");
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
// Enviar consulta
$instruccion = "select * from noticias order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<FORM ACTION='elimina_noticia.php' METHOD='post'>\n");
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Ttulo</TH>\n");
print ("<TH>Texto</TH>\n");
print ("<TH>Categora</TH>\n");
print ("<TH>Fecha</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("<TH>Borrar</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['titulo'] . "</TD>\n");
print ("<TD>" . $resultado['texto'] . "</TD>\n");
print ("<TD>" . $resultado['categoria'] . "</TD>\n");
print ("<TD>" . $resultado['fecha'] . "</TD>\n");
if ($resultado['imagen'] != "")
print ("<TD>
<A TARGET='_blank' HREF='img/" . $resultado['imagen']."'>
<IMG BORDER='0' SRC='img/ico-fichero.gif' ALT='Imagen asociada'></A>
</TD>\n");
else
print ("<TD></TD>\n");
print ("<TD><INPUT TYPE='CHECKBOX' NAME='borrar[]' VALUE='" .
$resultado['id'] . "'></TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
print ("<BR>\n");
print ("<INPUT TYPE='SUBMIT' NAME='eliminar' VALUE='Eliminar noticias marcadas'>\n");
print ("</FORM>\n");
}
else
print ("No hay noticias disponibles");
// Cerrar conexin
mysql_close ($conexion);
}
?>
</BODY>
</HTML>
Pagina1.html (opciones)
<html>
<body>
<a href="pagina2.html">subir foto</a><br>
<a href="pagina4.php">Mostrar la foto</a><br>
<a href="pagina6.php">Mostrar todas las fotos</a><br>
</body>
</html>
pagina2.html (formulario de carga)
<html>
<body>
<form action="pagina3.php" method="post" enctype="multipart/form-data">
Seleccione el archivo:
<input type="file" name="foto"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
pagina3.php (inserta la imagen)
<html>
<body>
<?php
$imagen=$_FILES['foto']['tmp_name'];//contenido del archivo
$nomimagen=$_FILES['foto']['name'];//nombre
$tipoimagen=$_FILES['foto']['type'];//tipo
$tamimagen=$_FILES['foto']['size'];//tamao
$fp=fopen($imagen,'rb'); //abrimos el archivo binario "imagen" en modo lectura
$contenido=fread($fp,$tamimagen);//lee el archivo hasta el tamao de la imagen
$contenido=addslashes($contenido);//Aadimos caracteres de escape
fclose($fp); //cerramos el archivo
$conexion=mysql_connect("localhost","root","") or
die("Problemas en la conexion");
mysql_select_db("matriculas",$conexion) or
die("Problemas en la seleccin de la base de datos");
mysql_query("insert into fotos(foto) values ('$contenido')", $conexion)
or die("problemas en el alta");
Aplicaciones Web con PHP
Ing. Fernando Castillo R.
mysql_close($conexion);
echo "Datos cargados";
?>
<br>
<a href="pagina1.html">Retornar</a>
</body>
</html>
Pagina4.php (recupera los cdigos vinculados a sus imgenes)
<html>
<body>
<?php
$conexion=mysql_connect("localhost","root","") or
die("Problemas en la conexion");
mysql_select_db("matriculas",$conexion) or
die("Problemas en la seleccin de la base de datos");
$registros=mysql_query("select codigo from fotos",$conexion)
or die("problemas en el select:".mysql_error());
echo "<table border=\"1\">";
echo "<tr>";
echo "<td>codigo</td>";
echo "</tr>";
while ($fila=mysql_fetch_array($registros))
{
echo "<tr>";
echo "<td>
<a href=\"pagina5.php?cod=".$fila["codigo"]."\">".$fila["codigo"]."</a></td>";
echo "</tr>";
}
echo "</table>" ;
mysql_close($conexion);
?>
<a href="pagina1.html">Retornar</a>
</body>
</html>
pagina5.php (muestra la imagen)
<?php
$conexion=mysql_connect("localhost","root","") or
die("Problemas en la conexion");
mysql_select_db("matriculas",$conexion) or
die("Problemas en la seleccin de la base de datos");
$registro=mysql_query("select foto from fotos where codigo=$_REQUEST[cod]",$conexion)
or
die("Error en el select:".mysql_error());
$reg=mysql_fetch_array($registro);
Header ("Content-type: image/jpeg");
echo $reg['foto'];
?>
Pagina6.php (muestra todas las imgenes recursuvamente con pagina5.php)
<html>
<body>
<?php
$conexion=mysql_connect("localhost","root","") or
die("Problemas en la conexion");
mysql_select_db("matriculas",$conexion) or
die("Problemas en la seleccin de la base de datos");
Aplicaciones Web con PHP
Ing. Fernando Castillo R.