Foros del Web » Programando para Internet » PHP »

Update a Imagen guardada en BD

Estas en el tema de Update a Imagen guardada en BD en el foro de PHP en Foros del Web. Hola a todos amigos, ayudado de los aportes de foros del web: http://www.forosdelweb.com/f18/aportes-sistemas-php-569025/ implemente guardar imagenes en forma binaria en BD... Ahora se me surgido ...
  #1 (permalink)  
Antiguo 04/09/2008, 13:37
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Pregunta Update a Imagen guardada en BD

Hola a todos amigos, ayudado de los aportes de foros del web:
http://www.forosdelweb.com/f18/aportes-sistemas-php-569025/
implemente guardar imagenes en forma binaria en BD...
Ahora se me surgido una necesidad de modificar la imagen guardada en BD (ojo que la imagen presente su id con incremento automatico - autoincrement), solo la imagen modificarla pero que conserve su misma id...disculpen por la pregunta pero se podra?????

Gracias de antemano por el apoyo que me puedan brindar
  #2 (permalink)  
Antiguo 04/09/2008, 13:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Update a Imagen guardada en BD

Hacer un SELECT para tomar los datos, y luego de que hayas terminado de editarla (o lo que sea), haces un UPDATE.

Pero tendrias que pasar el ID de alguna forma. Usa GET para pasarla por URL y hacer el UPDATE al mismo registro que tomaste.
  #3 (permalink)  
Antiguo 04/09/2008, 14:13
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Quizas algo así Ronruby...
editarAdmin.php
<?php
include('conec.php');
conectarse();
$registro=mysql_query("select * from catalogo where id='".$_GET['id']."'");
$row=mysql_fetch_array($registro);
?>

<html>
<head>
<title>Editando Catalogo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form2" method="post" action="actualizarAdmin.php?id=<?php echo $row["id"];?>">
<table>
<tr>
<td colspan="2" align="center">ACTUALIZACION DEL ARTICULO</td>
</tr>
<tr>
<td>Imagen</td>
<td align="center"><?php echo "<img src=\"verThumbnail2.php?id=".$row['id']."\">"; ?><br><?php echo $row["id"]?></td>
</tr>
<tr>
<td>Producto</td>
<td><input name="producto" type="text" id="producto" size="50" maxlength="45" value="<?php echo $row["producto"]?>"></td>
</tr>
<tr>
<td>Descripcion</td>
<td><textarea name="descripcion" rows="5" cols="39" id="descripcion"><?php echo $row["descripcion"]?></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" name="Submit" value="Actualizar"></td>
</tr>
</table>
</form>
</body>
</html>

Lo que faltaría seria implementarlo un input para la nueva imagen quizas???? y modificarlo el actualizarAdmin.php
<?
include('conec.php');
conectarse();
$ids=$_GET['id'];
$producto=$_POST['producto'];
$descripcion=$_POST['descripcion'];
$sql="update catalogo set producto='$producto', descripcion='$descripcion' where id='$ids'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
header("location:catalogoAdmin.php");
?>
  #4 (permalink)  
Antiguo 04/09/2008, 16:06
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Si me podrian dar una ayudita...
  #5 (permalink)  
Antiguo 05/09/2008, 07:34
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

A ver si me pueden ayudar por favor, he modificado segun las necesidades el archivo actualizarAdmin.php
<?php
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
error_reporting(E_ALL);

include('conec.php');
conectarse();

$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");

$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];

if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");

$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);

@unlink($tmp_name);

$fecha = date("Y-m-d H:i:s");



$ids=$_GET['id'];
$producto=$_POST['producto'];
$descripcion=$_POST['descripcion'];
$precio=$_POST['precio'];
$descuento=$_POST['descuento'];
$estado=$_POST['estado'];
$categoria=$_POST['categoria'];
$stock=$_POST['stock'];
$admin=$_POST['admin'];
$sql="update catalogo set foto='$tfoto', mime='$type', producto='$producto', descripcion='$descripcion', precio='$precio', descuento='$descuento', estado='$estado', categoria='$categoria', stock='$stock', idAdmin='$admin' ,fecha='$fecha' where id='$ids'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
header("location:catalogoAdmin.php");
?>
Y me da el siguiente error:
Parse error: parse error, unexpected $end in C:\AppServ\www\ventas\Administrador\actualizarAdmi n.php on line 41

Ademas modifique el archivo editarAdmin.php de lineas arriba para seleccionar la nueva imagen:
<form name="form2" method="post" action="actualizarAdmin.php?id=<?php echo $row["id"];?>" enctype="multipart/form-data">
<table width="80%" border="1" align="center" cellspacing="10">
<tr>
<td>Actualizaci&oacute;n del Producto</td>
<td align="center"><?php echo "<img src=\"verThumbnail.php?id=".$row['id']."\">"; ?><br><?php echo $row["id"]?></td>
</tr>
<tr>
<td><input type="file" size="20" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value"></td>
<td align="center"><img src="img/table_mensaje_carrito_2.jpg" name="imagen"></td>

</tr>

Gracias de antemano por su ayuda...
  #6 (permalink)  
Antiguo 05/09/2008, 07:48
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 9 meses
Puntos: 49
Respuesta: Update a Imagen guardada en BD

Que tal hoberwilly, el error te esta diciendo que te falta cerrar algún o algunos corchetes al utilizar las instrucciones IF.




Saludos.
  #7 (permalink)  
Antiguo 05/09/2008, 07:52
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Ya lo vi, falto cerrar el corchete del if en actualizarAdmin.php...gracias
lo probare y les comento como me fue
  #8 (permalink)  
Antiguo 08/09/2008, 08:12
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Hola amigos, les comento que este fin de semana estuve intentando implementar este update de las fotos guardadas en la bd pero nada...al comentario de Carlojas falto cerrar con un if pero al correr la actualizacion con el codigo lineas arriba solo se queda en blanco la pantalla...que puede ser??? o es que estoy errado en la forma como he modificado el codigo??????
  #9 (permalink)  
Antiguo 10/09/2008, 07:18
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Hola de nuevo amigos, les comento que sigo con esta implementacion pero negativo, no me sale sigo sin encontrar la solucion ...si alguien me podria ayudar por favor...agradesco de antemano...
  #10 (permalink)  
Antiguo 10/09/2008, 18:54
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Refresco la consulta en la cual se quiere editar la imagen que esta guardada en la base de datos, para lo cual se realizo algunos ajustes segun lo requerido:

catalogoAdmin.php
--------------------------
<?php
include('conec.php');
conectarse();
$qry=mysql_query("select * from catalogo order by id asc");
?>
...<html>...
<td><?php echo "<a href=\"editarAdmin.php?id=".$row['id']."\">Actualizar</a>" ?></td>


editarAdmin.php
-----------------------
<?php
include('conec.php');
conectarse();
$registro=mysql_query("select * from catalogo where id='".$_GET['id']."'");
$row=mysql_fetch_array($registro);
?>
<html>
<head>
<title>Editando Catalogo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form2" method="post" action="actualizarAdmin.php?id=<?php echo $row["id"];?>" enctype="multipart/form-data">
<table>
<tr>
<td colspan="2" align="center">ACTUALIZACION DEL ARTICULO</td>
</tr>
<tr>
<td>Imagen</td>
<td align="center"><?php echo "<img src=\"verThumbnail2.php?id=".$row['id']."\">"; ?><br><?php echo $row["id"]?></td>
</tr>
<tr>
<td><input type="file" size="20" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value"></td>
<td align="center"><img src="img/table_mensaje_carrito_2.jpg" name="imagen"></td>
</tr>
<tr>
<td>Producto</td>
<td><input name="producto" type="text" id="producto" size="50" maxlength="45" value="<?php echo $row["producto"]?>"></td>
</tr>
<tr>
<td>Descripcion</td>
<td><textarea name="descripcion" rows="5" cols="39" id="descripcion"><?php echo $row["descripcion"]?></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" name="Submit" value="Actualizar"></td>
</tr>
</table>
</form>
</body>
</html>

actualizarAdmin.php
----------------------------
<?php
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
error_reporting(E_ALL);

include('conec.php');
conectarse();

$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");

$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];

if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");

$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);

@unlink($tmp_name);

$fecha = date("Y-m-d H:i:s");


$ids=$_GET['id'];
$producto=$_POST['producto'];
$descripcion=$_POST['descripcion'];
$precio=$_POST['precio'];
$descuento=$_POST['descuento'];
$estado=$_POST['estado'];
$categoria=$_POST['categoria'];
$stock=$_POST['stock'];
$admin=$_POST['admin'];
$sql="update catalogo set foto='$tfoto', mime='$type', producto='$producto', descripcion='$descripcion', precio='$precio', descuento='$descuento', estado='$estado', categoria='$categoria', stock='$stock', idAdmin='$admin' ,fecha='$fecha' where id='$ids'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
echo "<h2>Datos modificados correctamente en la base de datos</h2>";
}
?>

Al intentar editar un producto da a una pagina en blanco (y se visualiza en el phpadmin y no se modifico nada) lo unico k puedo decir es el msje en url:
http://midominio.com/Administrador/a...n.php?id=00019

Gracias de antemano por la ayuda que me puedan brindar
  #11 (permalink)  
Antiguo 11/09/2008, 07:18
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

  #12 (permalink)  
Antiguo 11/09/2008, 13:31
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Les pido un servicio, a ver si no es mucha la molestia que les puedo originar...solo diganme si se puede realizar la edicion de imagenes guardados en base en binario...gracias
  #13 (permalink)  
Antiguo 12/09/2008, 07:17
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Solucionado: Update a Imagen guardada en BD

Hasta que x fin, a veces es bueno ser terco...aqui les dejo lo realizado para quienes les sea útil o en caso contrario será del uno +. O si alguien lo realiza de otra manera...

catalogoAdmin.php
--------------------------
<?php
include('conec.php');
conectarse();
$qry=mysql_query("select * from catalogo order by id asc");
?>
...<html>...
<td><?php echo "<a href=\"editarAdmin.php?id=".$row['id']."\">Actualizar</a>" ?></td>
...

editarAdmin.php
-----------------------------
<?php
include('conec.php');
conectarse();
$registro=mysql_query("select * from catalogo where id='".$_GET['id']."'");
$row=mysql_fetch_array($registro);
?>
<html>
<head>
<title>Editar Producto</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<form name="frmimage" method="post" enctype="multipart/form-data" action="actualizarAdmin.php?id=<?php echo $row['id'];?>">
<table >
<tr>
<td align="center" colspan="2"><?php echo "<img src=\"verThumbnail.php?id=".$row['id']."\">"; ?><br><?php echo $row["id"]?></td>
</tr>
<tr>
<td align="right">Nuevo:</td>
<td align="center"><input type="file" size="20" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value"><br><img src="img/table_mensaje_carrito_2.jpg" name="imagen"></td>
</tr>
<tr>
<td align="right">Producto:</td>
<td><input name="producto" type="text" id="producto" size="50" maxlength="45" value="<?php echo $row["producto"]?>"></td>
</tr>
</table>
<center>
<table border=0 cellpadding=15>
<td><input type="submit" name="enviar" id="enviar" value="Guardar"></td>
</table>
</form>
</body>
</html>

actualizarAdmin.php
---------------------------
<?php
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
error_reporting(E_ALL);
include('conec.php');
conectarse();

$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
@unlink($tmp_name);

$fecha = date("Y-m-d H:i:s");
$producto=$_POST['producto'];
$sql="update catalogo set foto='$tfoto', producto='$producto', fecha='$fecha' where id='".$_GET['id']."'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
header("location: catalogoAdmin.php");
return;
}
?>

Hasta otra oportunidad...bye
  #14 (permalink)  
Antiguo 22/09/2008, 07:50
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Hola amigos, este tema quedo solucionado pero con algunos problemitas que en seguida les comento:
El problema esta en el archivo editarAdmin.php, la actualizacion no es la optima, es por eso que realize algunas modificaciones para que al momento de cargar el archivo me previsualize la imagen a consultar:

editarAdmin.php
----------------------
<tr>
<td align="center" colspan="2" class="cod" style="border:1px solid blue;">
<?php echo $row["id"]?></td>
</tr>
<tr>
<td align="right">Nuevo:</td>
<td align="center" height="50">
<input type="file" size="20" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value">
<br><img src=\"verThumbnail.php?id=".$row['id']."\">" name=\"imagen\">
</td>
</tr>

y es aqui donde me entrampe debido a que si el administrador desea cambiar la imagen carga la nueva y actualiza el campo imagen (oka)...pero si este solamente quiere actualizar los demas datos y no tocar la imagen k esta guardada en la bd y que ademas esta previsualizada (imagen k corresponde a esa consulta) ...es obvio que no cargo ninguna imagen con :
<input type="file" size="20" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value">
y me sale el mensaje de : El archivo que subiste no es una imagen válida

y este es el archivo de actualizarAdmin.php
<?php
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
error_reporting(E_ALL);
include('conec.php');
conectarse();

$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
@unlink($tmp_name);

$fecha = date("Y-m-d H:i:s");
$producto=$_POST['producto'];
$descripcion=$_POST['descripcion'];

$sql="update catalogo set foto='$tfoto', producto='$producto', descripcion='$descripcion', fecha='$fecha' where id='".$_GET['id']."'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
header("location: catalogoAdmin1.php");
return;
}
?>
que es lo que debo realizar para esto??? gracias de antemano por la ayuda
  #15 (permalink)  
Antiguo 22/09/2008, 10:22
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Por favor si alguien me puede ayudar...gracias
  #16 (permalink)  
Antiguo 22/09/2008, 15:32
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Update a Imagen guardada en BD

Amigos les pido sus sugerencias x favor, es importante para finalizar mi proyecto...gracias
  #17 (permalink)  
Antiguo 24/09/2008, 17:03
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 8 meses
Puntos: 2
Ya los mas llegamos a la solucion: Update a Imagen guardada en BD

Me falta un poco nada mas, por favor si alguien podria ayudarme:
editarAdmin.php
----------------------
<?php
include('conec.php');
conectarse();
$registro=mysql_query("select * from catalogo where id='".$_GET['id']."'");
$row=mysql_fetch_array($registro);
?>
<html>
<head>
</head>

<body>
<form name="frmimage" method="post" enctype="multipart/form-data" action="actualizarAdmin.php?id=<?php echo $row['id'];?>">
<table>
<tr>
<td><?php echo $row["id"]?></td>
</tr>
<tr>
<td>Nuevo:</td>
<td><input type="file" size="35" id="foto" name="foto" onChange="document.imagen.src='file:///' + this.value">
<br><?php echo "<img src=\"verThumbnail.php?id=".$row['id']."\" name=\"imagen\">"
; ?> //aqui selecciono la nueva imagen a editar (input type="file" id="foto" name="foto") pero ojo con una previsualizacion(onChange="document.imagen.src) a esa imagen(name=imagen)
</td>
</tr>
<tr>
<td>Producto:</td>
<td><input name="producto" type="text" id="producto" size="50" maxlength="45" value="<?php echo $row["producto"]?>"></td>
</tr>
</table>
<center>
<table border=0 cellpadding=15>
<td><input type="submit" name="enviar" id="enviar" value="Guardar"></td>
</table>
</form>
</body>
</html>



<?php
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
error_reporting(E_ALL);
include('conec.php');
conectarse();

$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
if(in_array($type, $mimetypes))
{
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));

$tfoto = addslashes($tfoto);
fclose($fp);
@unlink($tmp_name);
$fecha = date("Y-m-d H:i:s");
}
else
{
aqui indicarle que el campo fecha y tfoto (donde esta guardado la primera foto)se deben dejar intacto si es que no es una imagen jpg,png o gif (if(!in_array($type, $mimetypes))
}
$producto=$_POST['producto'];
$sql="update catalogo set foto='$tfoto',producto='$producto',fecha='$fecha' where id='".$_GET['id']."'";
mysql_query($sql) or die( "Error en $sql, error: " . mysql_error() );
header("location: catalogoAdmin1.php");
return;
}
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:00.