Código HTML:
<FORM ENCTYPE="multipart/form-data" METHOD="POST" ACTION="procesar.php" name="form" > <table > <tr> <td>Producto</td><td><input name="producto" type="text"></input></td> </tr> <tr><td>Imagen</td><td><input name="archivo" type="file"></input></td></tr> <tr><td><input type="submit" value="enviar"></input></td></tr></table>
Código PHP:
if($_post['archivo']="")
{
$ruta="no imagen" ;
$error=false;
}
else
{
$error=false;
if($_FILES['archivo']['name'])
{
$local = $_FILES['archivo']['name'];
$remoto = $_FILES['archivo']['tmp_name'];
$extension = explode(".", $local);
$n = count($extension)-1;
$miext = array('jpg', 'gif', 'png', 'tiff', 'jpeg');
if(in_array($extension[$n], $miext))
{
// La variable para la BD
$ruta = "../Imagenes/" . $local;
chmod("$ruta", 0777);
if(is_uploaded_file($remoto))
{
if(!move_uploaded_file($remoto, $ruta))
{
$error=true;
}
}
else
{
$error=true;
}
}
else
{
$error=true;
}
}
}
if(!$error)
{
$producto=$_POST[producto];
$archivo=$_POST['archivo'];
mysql_query("INSERT INTO articulos(producto,imagen) VALUES('$nombre','$ruta');
header("Location: exito.php");
}
else
{
header("Location: error.php");
}
}
Código PHP:
//conectamos con la base de datos
$id=$_GET['id'];
include ("conectar.php");
$sql = "SELECT * FROM articulos WHERE idarticulo='$id' ORDER BY idarticulo DESC";
$result = mysql_query($sql) or die (mysql_error());
$datos = mysql_num_rows($result);
while($datos = mysql_fetch_array($result))
{
<FORM ENCTYPE="multipart/form-data" METHOD="POST" ACTION="procesar2.php?id=<?= $datos['idarticulo'] ?>" name="form" >
<table >
<tr>
<td>Producto</td><td><input name="producto" value="<?= $datos['nombre'] ?>" type="text"></input></td>
</tr>
<tr><td>Imagen</td><td><input name="archivo" type="file"></input></td></tr>
<tr><td><input type="submit" value="enviar"></input></td></tr></table>
<?php }?>
Código PHP:
$id=$_GET['id'];
if($_FILES['archivo']['name'])
{
$local = $_FILES['archivo']['name'];
$remoto = $_FILES['archivo']['tmp_name'];
$extension = explode(".", $local);
$n = count($extension)-1;
$miext = array('jpg', 'gif', 'png', 'tiff', 'jpeg');
if(in_array($extension[$n], $miext))
{
// La variable para la BD
$ruta = "../Imagenes/" . $local;
chmod("$ruta", 0777);
if(is_uploaded_file($remoto))
{
if(!move_uploaded_file($remoto, $ruta))
{
$error=true;
}
}
else
{
$error=true;
}
}
else
{
$error=true;
}
}
}
if(!$error)
{
$nombre=$_POST[nombre];
$archivo=$_POST[archivo];
if($sql = mysql_query("SELECT idarticulo FROM articulos WHERE idarticulo = $id")) {
$num = mysql_num_rows($sql);
if($num > 0) {
mysql_query("UPDATE articulos SET imagen='$ruta',nombre='$nombre' WHERE idarticulo='$id'",$link) or die(mysql_error());
header("Location: exito.php");
}
else
{
header("Location: error.php");
}}
else {
echo 'Error en la consulta: '.mysql_error();
}}
Lo que yo quiero es:
1) Si meto una imagen nueva, que efectivamente se actualice con esa imagen nueva (eso ya lo hace ahora)
2) Si yo no modifico para nada la imagen (el input de la imagen va vacío) que no me modifique nada en la ruta de ese registro, de ese producto, en la base de datos.
3) Si metiera una imagen nueva, que se actualice (ahora mismo eso si lo hace repito) y que además elimine del directorio Imagenes la imagen que ha sobreescrito, es decir, la imagen de origen o antigua.
Podéis ayudarme? qué hago mal?
gracias a todos
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)