Foros del Web » Programando para Internet » PHP »

Actualizar campos BLOB

Estas en el tema de Actualizar campos BLOB en el foro de PHP en Foros del Web. Hola: Tengo una forma en PHP que me permite insertar imágenes en una DB de mySQL, además de otros datos, y ahora necesito otra forma ...
  #1 (permalink)  
Antiguo 12/07/2003, 12:29
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 20 años, 11 meses
Puntos: 9
Actualizar campos BLOB

Hola:

Tengo una forma en PHP que me permite insertar imágenes en una DB de mySQL, además de otros datos, y ahora necesito otra forma para actualizar esos mismos datos, incluyendo la posibilidad de cambiar las imágenes por otras.

Actualizar el texto ya lo pude hacer, pero no he podido sustituir una imagen por otra.

Me sale un mensaje de esos de "parse error on line fulana" y ni idea de cómo hacer el cambio.

¿Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 12/07/2003, 15:39
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 22 años, 11 meses
Puntos: 0
Hola, seria interesante qeu nos muestres un poco tu codigo, asi te podremos ayudar...
El error que mencionas es un problema sintactico, por lo que la unica manera de resolverlo es leyendo el codigo y encontrar donde esta el error.

Saludos
Nok.
__________________
La casa de Noktemplate.
Zonaphp.com - Php en español.

¿Que esperas de NokTpl 2? Deja tu comentario.

Blog
Mas o menos asi .
  #3 (permalink)  
Antiguo 12/07/2003, 15:55
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 20 años, 11 meses
Puntos: 9
Hola Nok! Gracias por contestar.

Ya logré hacer que cambie la imagen, pero ahora tengo otro problema...

Siempre que entro a la forma para actualizar el registro tengo que elegir la imagen, aunque no quiera cambiarla.

Lo que hago para sustituir los datos es esto

Primero tomo los valores de la imagen que vienen del formulario de este modo:

Código PHP:
$file1 $_FILES["archivo1"]["tmp_name"]; 
$size1 $_FILES["archivo1"]["size"];
$type1 $_FILES["archivo1"]["type"];
$name1 $_FILES["archivo1"]["name"];
$descripcion $_POST['descripcion']; //campo de texto
$precio $_POST['precio'];//campo de texto 
Luego hago la cadena que va al BLOB, de esta manera:

Código PHP:
$fp1 fopen($file1"rb");
$contenido1 fread($fp1$size1);
$contenido1 addslashes($contenido1);
fclose($fp1); 
Luego corro el query:

Código PHP:
$miQuery "UPDATE miTabla 
SET contenido = '$contenido1' , 
descripcion= '$descripcion', 
precio = '$precio' 
WHERE miId = '$id'"

Todo esto funciona bien, pero cada vez que entro para actualizar otros campos que no sean el de la imagen, me vacía el campo de la tabla donde estaba la imagen, y para evitarlo siempre tengo que volver a elegirla, lo cual es un poco tedioso.

¿Alguna idea de cómo puedo evitar que se vacíe el campo si no quiero cambiar la imagen?
  #4 (permalink)  
Antiguo 12/07/2003, 16:10
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Pues simplemente has tu query un poco mas dinamico...

Código PHP:
if ($contenido1=="") {
$miQuery "UPDATE miTabla 
SET descripcion= '$descripcion', 
precio = '$precio' 
WHERE miId = '$id'"
;
} else {
$miQuery "UPDATE miTabla 
SET contenido = '$contenido1' , 
descripcion= '$descripcion', 
precio = '$precio' 
WHERE miId = '$id'"
;

O algo así...

De esa forma, si no estas enviando nada en el $contenido1, sencillamente se actualizan los otros campos...

__________________
Manoloweb
  #5 (permalink)  
Antiguo 12/07/2003, 16:34
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 20 años, 11 meses
Puntos: 9
Gracias por responder Manoloweb. La verdad es que sí fue un avance importante lo que me sugieres, aunque por como está mi archivo dio pie a otro problema. Supongo que se puede solucionar con el mismo método, pero aplicado en otro lado.

Ahora, con el query dinámico y la variable $contenido1 llena, funciona, y si no está llena, me sale esto:

Warning: fopen("", "rb") - Success in /tal_lugar.php on line fulana

Warning: fread(): supplied argument is not a valid File-Handle resource in /tal_lugar.php on line fulana

Warning: fclose(): supplied argument is not a valid File-Handle resource in /tal_lugar.php on line fulana

Warning: Cannot add header information - headers already sent by (output started at /tal_lugar.php:algo) in /tal_lugar.php on line la que sea

Creo que lo que pasa es que si llega vacía la variable $archivo que es la que le pasa el formulario a este php para "hacer" la variable $contenido1 simplemente no tiene ningún archivo temporal que leer y procesar.

Voy a seguir intentando, pero si a alguien se le ocurre algo, soy todo ojos
  #6 (permalink)  
Antiguo 12/07/2003, 19:20
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Pues efectivamente, el metodo es igual...

Solo aplicalo a la sección donde hace la lectura o escritura del archivo de texto...

Código PHP:
if ($contenido1!=""){
// Aqui haces el trabajo con el archivo
// de texto, y todos los file(); fopen; fclose, etc
// Ya que SI existe el archivo
}

// Aqui afuera NADA pasa, simplemente continuas con tu script... 
__________________
Manoloweb
  #7 (permalink)  
Antiguo 13/07/2003, 08:56
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 20 años, 11 meses
Puntos: 9
Hola Manoloweb, parece que no funcionó. Seguro es un error de sintaxis mío. Voy a seguir probando y cuando llegue a algo les aviso.

De todos modos, mil gracias por tu tiempo

Saludos
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:19.