PHP - Modificacion de Registros

 
Vista:

Modificacion de Registros

Publicado por Matias_80 (10 intervenciones) el 28/11/2006 02:29:32
hola gente !!

Tengo un archivo que trae datos de una DB para modificar, el tema es que anda fenomeno la parte de nombre, direccion, telefono y email pero la parte de la imagen no me funciona del todo bien lo que hize fue mostrar la imagen actual y una opcion q dice "Cambiar Imagen" q lo que hace por medio de un radio button es habilitar el type=file para modificar la imagen (eso anda fenomeno!!)

Pero aca tengo el problema cuando no quiero cargar otra imagen y dejar la q tengo, le doy al boton modificar y pone vacio la imagen en la DB !! trate de pasar un hidden con la imagen pero no me funca!!!

Que me sugieren que haga?! o que podria hacer para q cuando no quiero modificar la imagen y conservar la q ya existe??!!

//modificar.php

<form action="modificar_reg_2.php" method="post" name="modificar" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="1" class="blue" width="500">
<tr>
<td align="left" background="imagenes/blue_grad.gif" height="21">
<span class="tab"><strong> Modificar Usuarios</strong></span>
</td>
</tr>
<tr>
<td>
<table bgcolor="#ffffff" border="0" cellpadding="2" cellspacing="2" width="100%">
<tr align="center" class="green">
<td align="left" valign="top">
 Nombre
</td>
<td align="left" valign="top">
 Direccion
</td>
<td align="left" valign="top">
 Telefono
</td>
<td align="left" valign="top">
 Email
</td>
<td align="left" valign="top">
 Imagen
</td>
<td align="left" valign="top">
 Cambiar Imagen  
<input type="radio" name="radio" value="yes" onclick="cambiarImagen();">
</td>
</tr>

</td>
</tr>
<?php
while( $row = mysql_fetch_array($result) )
{
$imagen = $row["imagen"];
printf("<tr><td><input type='hidden' name='id' size='1' value='%s' style='display:none;'>
<input type='text' name='nombre' size='15' value='%s'> </td>
<td><input type='text' name='direccion' size='15' value='%s'> </td>
<td><input type='text' name='telefono' size='15' value='%s'> </td>
<td><input type='text' name='email' size='15' value='%s'> </td>
<td> %s </td>
<td><input type='file' name='imagen' id='imagen_file' size='15' value='%s' disabled='true' > </td></tr>",
$row["id"], $row["nombre"], $row["direccion"], $row["telefono"], $row["email"], "<img src=\"images/".$imagen."\" width=\"90\" height=\"90\" align=\"center\" />", $row["imagen"] );
}
mysql_free_result($result);
?>
<tr>
<td align="center"><input type="submit" value="Modificar" name="b1" style="width: 65px;" ></td>
</tr>
</table>
</form>

//modficar_2.php

<?php

//conexion a la DB y updetea los datos
if (isset($id))
{
$link = mysql_connect("localhost", "");
mysql_select_db("tablacurso", $link);

$imagen = $_FILES['imagen']['name'];

$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email', imagen='$imagen' WHERE id='$id'";

chmod($_FILES['imagen']['tmp_name'],777);
$upfile1=move_uploaded_file($_FILES['imagen']['tmp_name'], "images/".$imagen."");

$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}

?>

Muchas graciassssssss!!!!!!!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Modificacion de Registros

Publicado por ludwing (57 intervenciones) el 28/11/2006 21:25:27
Una posible solución, creo entender, sería el comprobar que se ha "subido" algo:

//modficar_2.php

<?php

//conexion a la DB y updetea los datos
if (isset($id))
{
$link = mysql_connect("localhost", "");
mysql_select_db("tablacurso", $link);

//comprobamos si hay que subir la imagen
if ($_FILES['imagen']['size'] > 0){
//hay que subir la imagen
$imagen = $_FILES['imagen']['name'];

$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email', imagen='$imagen' WHERE id='$id'";

chmod($_FILES['imagen']['tmp_name'],777);
$upfile1=move_uploaded_file($_FILES['imagen']['tmp_name'], "images/".$imagen."");

$result = mysql_query($sql);
}
else{
//no hay que subir la imagen
$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id='$id'";

$result = mysql_query($sql);
}

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificacion de Registros

Publicado por Matias_80 (10 intervenciones) el 29/11/2006 01:25:56
Hola ludwing!!

Probe lo que me recomendastes y me pasa lo mismo q antes me pone vacio el campo imagen
y no me respeta la que ya tenia seleccionada!

Este es el codigo

modificar_2.php

<?php
//conexion a la DB y updetea los datos
if (isset($id))
{
$link = mysql_connect("localhost", "");
mysql_select_db("tablacurso", $link);

//comprobamos si hay que subir la imagen
if ($_FILES['imagen']['size'] > 0)
{
//hay que subir la imagen
$imagen = $_FILES['imagen']['name'];

$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email', imagen='$imagen' WHERE id='$id'";

chmod($_FILES['imagen']['tmp_name'],777);
$upfile1=move_uploaded_file($_FILES['imagen']['tmp_name'], "images/".$imagen."");

$result = mysql_query($sql);

}
else
{
//no hay que subir la imagen
$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id='$id'";

$result = mysql_query($sql);

}

}
?>

El tema es que cuando no quiero modificar la imagen (dejar la que ya tengo!) entra al ELSE
pero pone vacio el campo.

Hay alguna manera de pasarle por variable o algo la imagen que ya esta
o que se podria hacer???

Muchas gracias por tu ayuda!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificacion de Registros

Publicado por ludwing (57 intervenciones) el 29/11/2006 22:09:01
¿Seguro que entra en el else? Por que si entra en el else no entiendo cómo te pone vacio el campo imagen cuando en el update no se le dice nada sobre ese campo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificacion de Registros

Publicado por Matias_80 (10 intervenciones) el 30/11/2006 04:13:27
Hola ludwing!!!

Si entra al else porque le pongo Echo como un alert para ver si entra y entra y la verdad lo pone vacio, me voy a fijar q no este mandando nada raro, tambien probe poner algo asi

if ($_FILES['imagen']['name']=="") antes del $_FILES['imagen']['size'] pero tampoco me funciona.

Voy a copiar nuevamente el codigo a ver si encontramos algo raro!!!!

//modificar.php
<form action="modificar_reg_2.php" method="post" name="modificar" enctype="multipart/form-data">

<?php
if ( mysql_num_rows($result) > 0 )
{
while( $row = mysql_fetch_array($result) )
{
$imagen = $row["imagen"];
printf("<tr><td><input type='hidden' name='id' size='1' value='%s' style='display:none;'>
<input type='text' name='nombre' size='15' value='%s'> </td>
<td><input type='text' name='direccion' size='15' value='%s'> </td>
<td><input type='text' name='telefono' size='15' value='%s'> </td>
<td><input type='text' name='email' size='15' value='%s'> </td>
<td> %s </td>
<td><input type='file' name='imagen' id='imagen_file' size='15' value='%s' disabled='true' > </td></tr>
<tr><td colspan='6' align='center'><br><br><input type='submit' value='Modificar' name='b1' style='width: 65px;' ></td></tr>
",
$row["id"], $row["nombre"], $row["direccion"], $row["telefono"], $row["email"], "<img src=\"images/".$imagen."\" width=\"90\" height=\"90\" align=\"center\" />", $row["imagen"] );
}
}
else
{
echo ("<tr><td colspan='6' align='center'><br><br><strong>No existe ese NOMBRE !!!</strong></td></tr>");

}
mysql_free_result($result);

?>
</form>

//modificar_reg_2.php

<?php
//conexion a la DB y updetea los datos
if (isset($id))
{
$link = mysql_connect("localhost", "");
mysql_select_db("tablacurso", $link);

$imagen = $_FILES['imagen']['name'];

//comprobamos si hay que subir la imagen
if ( $imagen != "" )
{
//hay que subir la imagen
$imagen = $_FILES['imagen']['name'];

$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email', imagen='$imagen' WHERE id='$id'";

chmod($_FILES['imagen']['tmp_name'],777);
$upfile1=move_uploaded_file($_FILES['imagen']['tmp_name'], "images/".$imagen."");

$result = mysql_query($sql);

}
else
{

//no hay que subir la imagen
$sql = "UPDATE tablacurso SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id='$id'";

$result = mysql_query($sql);

}
}
?>

muchas gracias!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificacion de Registros

Publicado por ludwing (57 intervenciones) el 30/11/2006 21:40:06
En "modificar.php " hay un "while". Por lo que tendrás en un mismo formulario muchos campos con el mismo nombre, esto seguramente de problemas.

Por otra parte, yo no pondría el nombre de la imagen en el "value" del "file". Lo dejaría vacío, con ver la imagen creo que ya es suficiente...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar