Você está na página 1de 12

MANEJO DE IMGENES

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.

<P>Te gusta PHP?</P>


<FORM ACTION="encuesta.php" METHOD="POST">
<INPUT TYPE="RADIO" NAME="voto" VALUE="si" CHECKED>S<BR>
<INPUT TYPE="RADIO" NAME="voto" VALUE="no">No<BR><BR>
<INPUT TYPE="SUBMIT" NAME="enviar" VALUE="votar">
</FORM>
<A HREF="encuesta-resultados.php">Ver resultados</A>
<?PHP
}
?>
</BODY>
</HTML>
<HTML>
<BODY>
<H1>Resultados de la votacin</H1>
<?PHP
$connection = mysql_connect("localhost","root","");
mysql_select_db("matriculas");
//Obtener datos actuales de la votacin
$instruccion = "select * from votos";
$consulta = mysql_query($instruccion,$connection);
$resultado = mysql_fetch_array($consulta);
$votos1 = $resultado[votos1];
$votos2 = $resultado[votos2];
$totalVotos = $votos1 + $votos2;
//Mostrar resultados
print "<TABLE>";
print "<TR>";
print "<TH>Respuesta</TH>";
print "<TH>Votos</TH>";
print "<TH>Porcentaje</TH>";
print "<TH>Representacin grfica</TH>";
print "</TR>";
$porcentaje = round(($votos1/$totalVotos)*100,2);
print "<TR>";
print "<TD CLASS='izquierda'>S</TD>";
print "<TD CLASS='derecha'>$votos1</TD>";
print "<TD CLASS='derecha'>$porcentaje%</TD>";
print "<TD CLASS='izquierda'>
<IMG SRC='img/puntoamarillo.gif' HEIGHT='10' WIDTH='".$porcentaje*4 ."'>

</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.

b) Guardando imgenes en el servidor


CREATE TABLE noticias
(
id int auto_increment,
titulo varchar(100),
texto varchar(1000),
categoria varchar(50),
fecha date,
imagen varchar(100),
PRIMARY KEY (id)
);
INSERT INTO noticias VALUES
(1,'Libro en uso','Java en 24 horas','Ofrecidos','2012-05-01','java24h.jpg');
INSERT INTO noticias VALUES
(2,'Instalador','MySql la base de datos mas eficiente','Ofrecidos','2012-05-02','mysql.JPG');
INSERT INTO noticias VALUES
(3,'Practicantes','interesados que quieran apoyar como asistentes','Pedidos','2012-05-03','upao.png');
INSERT INTO noticias VALUES
(4,'Curso de extension','la escuela de sistemas ofrece cursos extracurriculares','Ofrecidos','2012-05-03',NULL);

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.

// Si ya existe un fichero con el mismo nombre, renombrarlo


$nombreCompleto = $nombreDirectorio . $nombreFichero;
if (is_file($nombreCompleto))
{
$idUnico = time();
$nombreFichero = $idUnico . "-" . $nombreFichero;
}
}
// El fichero introducido supera el lmite de tamao permitido
else if ($_FILES['imagen']['error'] == UPLOAD_ERR_FORM_SIZE)
{
$maxsize = $_REQUEST['MAX_FILE_SIZE'];
$errores["imagen"] = "El tamao del fichero supera el lmite ($maxsize bytes)!";
$error = true;
}
// No se ha introducido ningn fichero
else if ($_FILES['imagen']['name'] == "")
$nombreFichero = '';
// El fichero introducido no se ha podido subir
else
{
$errores["imagen"] = "No se ha podido subir el fichero!";
$error = true;
}
}
// Si los datos son correctos, procesar formulario
if (isset($insertar) && $error==false)
{
// Insertar la noticia en la Base de Datos
$conexion = mysql_connect ("localhost", "root", "")
or die (mysql_error());
mysql_select_db ("matriculas")
or die (mysql_error());
$fecha = date ("d-m-y"); // Fecha actual
$instruccion = "insert into noticias (titulo, texto, categoria, fecha, imagen) values
('$titulo', '$texto', '$categoria', '$fecha', '$nombreFichero')";
$consulta = mysql_query ($instruccion, $conexion)
or die (mysql_error());
mysql_close ($conexion);
// Mover fichero de imagen a su ubicacin definitiva
if ($copiarFichero)
move_uploaded_file ($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
// Mostrar datos introducidos
print ("<H1>Gestin de noticias</H1>\n");
print ("<H2>Resultado de la insercin de nueva noticia</H2>\n");
print ("La noticia ha sido recibida correctamente:");
print ("<UL>");
print ("<LI>Ttulo: " . $titulo);
print ("<LI>Texto: " . $texto);
print ("<LI>Categora: " . $categoria);
print ("<LI>Fecha: " . $fecha);
if ($nombreFichero != "")
print ("<LI>Imagen: <A TARGET='_blank' HREF='" . $nombreDirectorio .
$nombreFichero . "'>" . $nombreFichero . "</A>");
else
print ("<LI>Imagen: (no hay)");
print ("</UL>");
print ("<BR>");
Aplicaciones Web con PHP
Ing. Fernando Castillo R.

print ("[ <A HREF='noticias.html'>retornar</A> ]");


}
else
{
?>
<H1>Insercin de nueva noticia</H1>
<FORM ACTION="inserta_noticia.php" NAME="inserta" METHOD="POST"
ENCTYPE="multipart/form-data">
<!-- Ttulo de la noticia -->
<P><LABEL>Ttulo: *</LABEL>
<INPUT TYPE="TEXT" NAME="titulo" SIZE="50" MAXLENGTH="50"
<?PHP
if (isset($insertar))
print ("VALUE='$titulo'>\n");
else
print (">\n");
if ($errores["titulo"] != "")
print ("<BR><SPAN CLASS='error'>" . $errores["titulo"] . "</SPAN>");
?>
</P>
<!-- Texto de la noticia-->
<P><LABEL>Texto: *</LABEL>
<TEXTAREA COLS="45" ROWS="5" NAME="texto">
<?PHP
if (isset($insertar))
print ("$texto");
print ("</TEXTAREA>");
if ($errores["texto"] != "")
print ("<BR><SPAN CLASS='error'>" . $errores["texto"] . "</SPAN>");
?>
</P>
<!-- Categora de la noticia-->
<P><LABEL>Categora:</LABEL>
<SELECT NAME="categoria">
<OPTION SELECTED>Pedidos
<OPTION>Ofrecidos
</SELECT></P>
<!-- Imagen asociada a la noticia -->
<P><LABEL>Imagen:</LABEL>
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">
<?PHP
if ($errores["imagen"] != "")
print ("<BR><SPAN CLASS='error'>" . $errores["imagen"] . "</SPAN>");
?>
</P>
<!-- Botn de envo -->
<P><INPUT TYPE="SUBMIT" NAME="insertar" VALUE="Insertar noticia"></P>
</FORM>
<P>NOTA: los datos marcados con (*) deben ser rellenados obligatoriamente</P>
<?PHP
}
?>
</BODY>
</HTML>
elimina_noticia.php
<HTML>
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>

c) Agragar imgenes a la base de datos


create table fotos
(
codigo integer auto_increment,
foto blob,
primary key (codigo)
);
Aplicaciones Web con PHP
Ing. Fernando Castillo R.

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.

$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 "<td>foto</td>";
echo "</tr>";
while ($fila=mysql_fetch_array($registros))
{
echo "<tr>";
echo "<td>$fila[codigo]</td>";
echo "<td><img src=\"pagina5.php?cod=".$fila["codigo"]."\"></td>";
echo "</tr>";
}
echo "</table>" ;
mysql_close($conexion);
?>
<a href="pagina1.html">Retornar</a>
</body>
</html>

Aplicaciones Web con PHP


Ing. Fernando Castillo R.

Você também pode gostar