Foros del Web » Programando para Internet » PHP »

Problema con if

Estas en el tema de Problema con if en el foro de PHP en Foros del Web. Saludos, estoy haciendo un programa en que los usuarios suben sus fotos, bueno hasta ahi todo correcto , el problema surge cuando los usuarios quieren ...
  #1 (permalink)  
Antiguo 03/07/2014, 15:54
 
Fecha de Ingreso: octubre-2010
Ubicación: Guayaquil
Mensajes: 195
Antigüedad: 14 años, 1 mes
Puntos: 3
Problema con if

Saludos, estoy haciendo un programa en que los usuarios suben sus fotos, bueno hasta ahi todo correcto , el problema surge cuando los usuarios quieren "actualizar sus fotos" o sea cambiarlas por otras, tengo este codigo...si el usuario actualiza todas sus 2 fotos no hay problema, el dilema surge cuando quiere hacerlo en una y en otra no y me borra la que no quiere actualizar y me la deja en blanco, no quiero que esto suceda , quiero que mantenga sus fotos intactas si no quiere actualizarlas.si le pongo un else exit al final igual sale mal.

mi codigo:

Código PHP:
$nombrefoto=$_FILES ['foto1'] ['name'] ;
$ruta=$_FILES['foto1'] ['tmp_name'];
$destino "fotos/".$nombrefoto;

$nombrefoto2=$_FILES ['foto2'] ['name'] ;
$ruta2=$_FILES['foto2'] ['tmp_name'];
$destino2 "fotos/".$nombrefoto2;

if (!empty (
$_FILES ['foto1'] ['name'] ))
{
copy ($ruta,$destino); 
 
mysql_connect("localhost","root","");
    
mysql_select_db("datos");
  
mysql_query("UPDATE datos1 set foto1 = '"$destino "' WHERE usuario = '" $usuario1 "'");
  
  if (!empty (
$_FILES ['foto2'] ['name'] ))
{
copy ($ruta2,$destino2); 
 
mysql_connect("localhost","root","");
    
mysql_select_db("datos");
  
mysql_query("UPDATE datos1 set foto2 = '"$destino2 "' WHERE usuario = '" $usuario1 "'");

}} 
  #2 (permalink)  
Antiguo 03/07/2014, 17:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problema con if

De inicio te digo que no está bien el crear una conexión a la BD por cada consulta que vayas a realizar, con una es suficiente. Por otro lado, deberías de tener a ambas condiciones por separado, porque así como las tienes, si el usuario decide cambiar la segunda foto pero no la primera, no podría hacerlo porque tu estructura no lo permite. Si ya asignas el valor de $_FILES['foto1']['name'] a $nombrefoto1 y el de $_FILES['foto2']['name'] a $nombrefoto2, no es necesario que en la condición vuelvas a utilizar las fuentes de dichos valores, basta con que uses a las variables a las que les asignaste los valores.

Trata de reorganizar tu código así:

Código PHP:
Ver original
  1. mysql_connect('localhost', 'root', '');
  2. mysql_select_db('datos');
  3.  
  4. if (isset($_FILES['foto1']['name'])){
  5.     $nombrefoto1 = $_FILES['foto1']['name'];
  6.     $ruta1 = $_FILES['foto1']['tmp_name'];
  7.     $destino1 = 'fotos/' . $nombrefoto;
  8. }
  9. else $nombrefoto1 = null;
  10.  
  11. if (isset($_FILES['foto2']['name'])){
  12.     $nombrefoto2 = $_FILES['foto2']['name'];
  13.     $ruta2 = $_FILES['foto2']['tmp_name'];
  14.     $destino2 = 'fotos/' . $nombrefoto2;
  15. }
  16. else $nombrefoto2 = null;
  17.  
  18. if (!is_null($nombrefoto1)){
  19.     copy ($ruta1, $destino1);
  20.     mysql_query("UPDATE datos1 SET foto1 = '{$destino1}' WHERE usuario = '{$usuario1}'");
  21. }  
  22.  
  23. if (!is_null($nombrefoto2)){
  24.     copy ($ruta2, $destino2);  
  25.     mysql_query("UPDATE datos1 SET foto2 = '{$destino2}' WHERE usuario = '{$usuario1}'");
  26. }

Prueba y nos cuentas cómo te fue, saludos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/07/2014, 10:31
 
Fecha de Ingreso: octubre-2010
Ubicación: Guayaquil
Mensajes: 195
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Problema con if

Saludos, me sale este mensaje:

Notice: Undefined variable: nombrefoto in C:\EasyPHP-5.3.6.1\www\prueba\insertar3.php on line 49

Warning: copy() [function.copy]: Filename cannot be empty in C:\EasyPHP-5.3.6.1\www\prueba\insertar3.php on line 61

Warning: copy() [function.copy]: Filename cannot be empty in C:\EasyPHP-5.3.6.1\www\prueba\insertar3.php on line 66
  #4 (permalink)  
Antiguo 04/07/2014, 11:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problema con if

Se me olvidó el numerito del final.

Código PHP:
Ver original
  1. mysql_connect('localhost', 'root', '');
  2. mysql_select_db('datos');
  3.  
  4. if (isset($_FILES['foto1']['name'])){
  5.     $nombrefoto1 = $_FILES['foto1']['name'];
  6.     $ruta1 = $_FILES['foto1']['tmp_name'];
  7.     $destino1 = 'fotos/' . $nombrefoto1;
  8. }
  9. else $nombrefoto1 = null;
  10.  
  11. if (isset($_FILES['foto2']['name'])){
  12.     $nombrefoto2 = $_FILES['foto2']['name'];
  13.     $ruta2 = $_FILES['foto2']['tmp_name'];
  14.     $destino2 = 'fotos/' . $nombrefoto2;
  15. }
  16. else $nombrefoto2 = null;
  17.  
  18. if (!is_null($nombrefoto1)){
  19.     copy ($ruta1, $destino1);
  20.     mysql_query("UPDATE datos1 SET foto1 = '{$destino1}' WHERE usuario = '{$usuario1}'");
  21. }  
  22.  
  23. if (!is_null($nombrefoto2)){
  24.     copy ($ruta2, $destino2);  
  25.     mysql_query("UPDATE datos1 SET foto2 = '{$destino2}' WHERE usuario = '{$usuario1}'");
  26. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: mysql, select, usuarios
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 14:11.