Foros del Web » Programando para Internet » PHP »

ayuda con actualizacion...

Estas en el tema de ayuda con actualizacion... en el foro de PHP en Foros del Web. Hola, tengo dos archivos de actualizacion, uno para actualizar datos de x Id y otro para actualizar las fotos del mismo Id.... ahora bien, tengo ...
  #1 (permalink)  
Antiguo 22/07/2003, 12:31
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
ayuda con actualizacion...

Hola, tengo dos archivos de actualizacion, uno para actualizar datos de x Id y otro para actualizar las fotos del mismo Id.... ahora bien, tengo un problema con las fotos, son varias fotos, pero cuando quiero actualizar solo una, pues entonces las demas tambien las actualizan....

como hago para que en un input file me muestre el contenido desde la BD?
__________________
www.dataautos.com
  #2 (permalink)  
Antiguo 22/07/2003, 12:39
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
No puedes. Normalmente se hace algo asi

<?php
// asumiendo que $sfoto contiene la foto
if (strlen($sfoto)>0) {
echo "<img src='".$sfoto."'><br>";
}
echo "<input type='checkbox' name='(id)' value='1'> Ingrese la Foto a Cambiar o Subir : <input type='file' name='(id)'>";
?>
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 22/07/2003, 12:41
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
strlen me da un tamaño de caracteres o algo asi?
__________________
www.dataautos.com
  #4 (permalink)  
Antiguo 22/07/2003, 12:46
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Cuando uno actualiza, solo debe espicificar los campos a afectar, si tu solamente quieres actualizar una foto, entonces tu actuaolización sería algo así.
Código PHP:
UPDATE tutabla SET FOTO1 'algo' WHERE Id '800' LIMIT 1 
con respecto a strlen

Informate aquí

Saludos

Última edición por biblio; 22/07/2003 a las 12:48
  #5 (permalink)  
Antiguo 22/07/2003, 12:47
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
si, strlen dice cuanto tiene de tamaño la variable $sfoto. Eso lo hago para evitar que se haga un <img src...> en blanco
__________________
No tengo firma ahora... :(
  #6 (permalink)  
Antiguo 22/07/2003, 12:47
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
si eso hace exactamente

Un Saludo
  #7 (permalink)  
Antiguo 22/07/2003, 12:48
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
si bliblio eso lo se, pero el caso es el siguiente...
te digo son 7 fotos.... y por ende tengo que poner 7 input file para actualizar las fotos... entoces, si de las 7 tu quieres actualizar una sola pues lo haces y las demas se deberian de quedar sin actualizar, lo mismo si quieres actualizarlas las 7 pues las actualizas todas...

me entiendes?

tengo los 7 input file, y quiero que si se actualiza una sola los demas 6 no se actualicen.
__________________
www.dataautos.com
  #8 (permalink)  
Antiguo 22/07/2003, 12:51
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Mickel el checkbox con value 1 que esta haciedo?
__________________
www.dataautos.com
  #9 (permalink)  
Antiguo 22/07/2003, 12:56
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
si tienes 7 files deberias tener 7 checkboxes, uno para cada file.

Te explico:
Cuando recibas los datos de un file en ocasiones la variable va a estar poblada con algo que no es "nothing" ni "null"(creo que eso es por cuestiones de navegador) y si intentas subir el valor de esa variable vas a tener un error.

Entonces, normalmente la solucion que yo uso es esta
- mostrar cada imagen
- poner un checkbox que permita al usuario decir
"si, quiero reemplazar esta imagen"
- poner un file en el cual el usuario suba la nueva imagen

al evaluar hago esto
if (strlen($checkbox)>0) {
if (strlen($file)>0) {
//upload del file y update en la base de datos
}
}

y esto lo repito para tantas imagenes como sea necesario.

Te queda mas claro ahora?
__________________
No tengo firma ahora... :(
  #10 (permalink)  
Antiguo 22/07/2003, 12:58
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
oks... ya creo tenerla idea..gracias, ya aviso como voy..

Gracias
__________________
www.dataautos.com
  #11 (permalink)  
Antiguo 22/07/2003, 13:16
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Gracias a todos.. .mickel me diste una idea con el checkbox, no lo utilice, pero si el if y luego el update..

Gracias
__________________
www.dataautos.com
  #12 (permalink)  
Antiguo 22/07/2003, 13:18
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Código PHP:
if (isset($_POST['Submit'])){
    
$update ="UPDATE tutable SET ";
    if(
$_FILES['file1']['size'] > 0){
        
$update.=" foto1 = file1 ";
    }
    if(
$_FILES['file2']['size'] > 0){
        
$update.="foto2 = file2 ";
    }
    
$update .="WHERE Id = '800' LIMIT 1 ;";

    echo 
$update;
}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" enctype="multipart/form-data" method="post" action="prueba.php">
  <p> 
    <input name="file1" type="file" id="file1">
    <br>
    <input name="file2" type="file" id="file2">
    <br>
    <input type="submit" name="Submit" value="Submit">
  </p>
  </form>
</body>
</html> 
Está un poco arcaico, pero te dará una ayuda al menos. Eso de tener checkbox, no me cabe, porque el sistema debe reconocer automaticamente que campos actualizar.


Saludos

Última edición por biblio; 22/07/2003 a las 13:20
  #13 (permalink)  
Antiguo 22/07/2003, 13:26
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Utilice algo parecido, aqui esta...

Código PHP:
<?php
if(isset($Submit))
{
//Si el boton submit ha sido pulsado
//verificanos si los archivos son imagenes pjpeg o gif
if($_FILES['photo']['type']=="image/pjpeg" or $_FILES['photo']['type']=="image/gif"){
$file=$_FILES['photo']['name'];
//Copiamos el archivo al servidor
copy($_FILES['photo']['tmp_name'], 'cars/images/'.$file);
//insertamos el nombre del archivo en la base de datos.
mysql_query("UPDATE Carros SET photo='$file'");
}
if(
$_FILES['photo2']['type']=="image/pjpeg" or $_FILES['photo2']['type']=="image/gif"){
$file2=$_FILES['photo2']['name'];
copy($_FILES['photo2']['tmp_name'],'cars/images/'.$file2);
mysql_query("UPDATE Carros SET photo2='$file2'");
}

y asi para cada foto...
__________________
www.dataautos.com
  #14 (permalink)  
Antiguo 22/07/2003, 13:29
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Yo te recomendaria que construyas el UPDATE como lo puse en el ejemplo, cosa que al final de un solo paso, Actualiza, así es mas corta tu código.

Es solo una sugerencia.


Saludos
  #15 (permalink)  
Antiguo 22/07/2003, 13:31
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
ejej bueno si, pero mejor lo hago con un archivo de prueba..jeej este ya no..ejje

otra cosa, como hago para subir una imagen por defecto? osea,
si no se sube una foto de las 7 quisiera tener una imagen que diga NO IMAGES... pero no se como
__________________
www.dataautos.com
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 23:09.