Foros del Web » Programando para Internet » PHP »

Duda con la actualización de la BD

Estas en el tema de Duda con la actualización de la BD en el foro de PHP en Foros del Web. Hola a todos, os explico mi duda: Para actualizar un registro de una tabla de la bd, lo que hago es visualizar todos sus campos ...
  #1 (permalink)  
Antiguo 16/06/2003, 05:24
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 21 años, 7 meses
Puntos: 0
Duda con la actualización de la BD

Hola a todos, os explico mi duda:

Para actualizar un registro de una tabla de la bd, lo que hago es visualizar todos sus campos en cuadros de textos, de la siguiente manera:

Código PHP:
<input name="padre" type="text" id="nombre3" value="<?php echo "$recuperado->padre"?>" size="50">
Por ejemplo, para modificar este dato, tan solo tendría que cambiarlo y mandar el formulario. Me lo hace correctamente.

Ahora bien, entre todos los campos tengo uno para la imagen. Lo que guardo en ese campo es la ruta donde se encuentra (imagenes/img01.jpg).

Este campo no lo puedo visualizar en un cuadro de texto, sino que tiene que ser en un cuadro de archivo. Es decir, el type del input sería en vez de text, file. Pero claro, a la hora de visualizar la ruta guardada en dicho campo, no me deja, y no puedo pasar el dato a tipo texto porque entonces no me deja modificar la imagen, al no aparecer el botón de Examinar...

Si modifico la imagen, me lo hace bien. Pero si modifico los otros datos, menos la imagen, este campo toma el valor 'imagenes/'. Por lo que ya no me sale la imagen guardada antes de la modificación.

¿Cómo hago para que siga cogiendo la ruta guardada anteriormente?

He probado a realizar una condicion if, preguntando si la variable $imagen (que es la de cuadro de archivo), es igual a "", coja la ruta que ya esta guardada. Pero al no ser un cuadro de texto, no me hace bien la condición.

¿Qué puedo hacer?

Muchas Gracias,
  #2 (permalink)  
Antiguo 16/06/2003, 05:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Usa la funcion is_uploaded_file() para mirar si ha subido un fichero. Si no, no modifiques el campo de la BD. Eso si, si quieres permitir el borrar la imagen (dejar el registro sin imagen), deberias poner un campo checkbox para que en caso de estar marcado, vaciar el campo de la BD.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/06/2003, 02:20
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 21 años, 7 meses
Puntos: 0
Muchas Gracias, no conocia esta funcion.

No se si la estoy utilizando correctamente, el caso es que si no modifico la imágen me sale bien, pero si la quiero modificar no me lo hace.

El código lo he puesto de la siguiente manera: (a lo mejor me hace falta algún parámetro).

Código PHP:
if (is_uploaded_file($imagen)){
    
mysql_query("UPDATE $TableName SET imagen='$newimage', padre='$padre', madre='$madre', nummachos='$nummachos', numhembras='$numhembras' WHERE id_camada='$id_camada'",$link) or die (mysql_error());
}else{
    
mysql_query("UPDATE $TableName SET padre='$padre', madre='$madre', nummachos='$nummachos', numhembras='$numhembras' WHERE id_camada='$id_camada'",$link) or die (mysql_error());

  #4 (permalink)  
Antiguo 17/06/2003, 14:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, todo depende de que la variable $imagen sea el campo FILE el formulario y que la variable $newimage contenga lo que quieras guardar en la base de datos. Sobre la funcion, en el manual vienen los parametros. Sin saber el codigo anterior, donde guardas el fichero y demas, no puedo decir si falla o no.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 18/06/2003, 02:18
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 21 años, 7 meses
Puntos: 0
Antes de nada, darte las gracias por tu ayuda.

Al final, después de darle unas pocas vueltas, llegué a la conclusión de que no hacía falta usar ninguna función. La solución era bien sencilla:

Código PHP:
if ($newimage!="imagenes/"){
      
mysql_query("UPDATE $TableName SET imagen='$newimage', padre='$padre', madre='$madre', nummachos='$nummachos', numhembras='$numhembras' WHERE id_camada='$id_camada'",$link) or die (mysql_error());
}else{
      
mysql_query("UPDATE $TableName SET padre='$padre', madre='$madre', nummachos='$nummachos', numhembras='$numhembras' WHERE id_camada='$id_camada'",$link) or die (mysql_error());

Espero que esto también ayude a otras personas.

La solución mejor no es la que te den sobre una bandeja de plata, sino la que encuentres por ti mismo, así te tires media vida buscándola.

Gracias, Josemi.
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 07:46.