Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizacionde campo en base de datos

Estas en el tema de Actualizacionde campo en base de datos en el foro de PHP en Foros del Web. Hola amigos tengo este codigo que cumple la funcion de subir y guardar en servidor los archivos, pero no se porque no me actualiza el ...
  #1 (permalink)  
Antiguo 12/10/2017, 18:20
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 128
Antigüedad: 7 años, 2 meses
Puntos: 10
Actualizacionde campo en base de datos

Hola amigos tengo este codigo que cumple la funcion de subir y guardar en servidor los archivos, pero no se porque no me actualiza el nombre del archivo en la base de datos ..

cual sera mi error ?
Código PHP:
<?php
$numero 
count($_GET);
$tags array_keys($_GET);// obtiene los nombres de las varibles
$valores array_values($_GET);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero;$i++){
$
$tags[$i]=$valores[$i];
}




$err_msg = array(
    
UPLOAD_ERR_OK => 'Archivo subido correctamente.',
    
UPLOAD_ERR_INI_SIZE => 'El tamaño del archivo ha excedido el tamaño indicado en php.ini .',
    
UPLOAD_ERR_FORM_SIZE => 'El tamaño del archivo ha excedido el tamaño máximo para este formulario.',
    
UPLOAD_ERR_PARTIAL => 'El archivo ha sido subido parcialmente.',
    
UPLOAD_ERR_NO_FILE => 'El archivo no existe.',
    
UPLOAD_ERR_NO_TMP_DIR => 'El directorio temporal no existe.',
    
UPLOAD_ERR_CANT_WRITE => 'No se puede escribir en el disco.',
    
UPLOAD_ERR_EXTENSION => 'Error de extensión PHP.'
);
$tipos_permitidos = array('jpg''jpeg''png''pdf''word'); //modificar estensiones

if (isset($_POST["submit"])) {
    
$fecha date('d-m-Y'time());

    
$nombre_temp $_FILES["file_upload"]["tmp_name"];
    
$nuevo_nombre $_FILES["file_upload"]["name"];
    
$primer_caracter strtoupper(substr($nuevo_nombre01));
    
$destino "subidas/carpeta_" $primer_caracter "-$fecha/" basename($nuevo_nombre);
    
$archivo=$destino ;
    
    
$link mysql_connect("localhost""esquina_esquina","xxxxx");
       
mysql_select_db("esquina_login",$link);
          
$nuevo_usuario=mysql_query("select user_id from usuarios_junta where email=".$email.""); 
    if(
mysql_num_rows($nuevo_usuario)>0){ 
    
$sql =" UPDATE  usuarios_junta SET archivo=".$archivo." WHERE email=".$email."";
   
$result mysql_query($sql);
                if(
$result) {echo "aurorizacion carhada con exito";}
                        else{
" No se cargo autorizacion";}
}        
            
    if (!
file_exists("subidas/carpeta_" $primer_caracter "-" $fecha)) {
        
mkdir("subidas/carpeta_" $primer_caracter "-" $fecha);
    }

    if (
move_uploaded_file($nombre_temp$destino)) {
        
$mensaje "Archivo correctamente subido";

        
$mime explode("."$nuevo_nombre);
        
$count count($mime);
        
$count--;

        
$a in_array($mime[$count], $tipos_permitidos) ? TRUE FALSE;
        if (!
$a) {
            echo 
"Tipo de archivo no permitido";
            exit();
        }
    } else {
        
$msg $err_msg[$_FILES['file_upload']['error']];
        echo 
'<span>' $msg '</span>';
    }
}


?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Formulario para subir archivos</title>
    </head>

    <body>
        <h1>Seleccionar un archivo</h1>
        
        <?php
        
echo $email;
        
        if (isset(
$mensaje)) {
            echo 
$mensaje "<br>";
        }
        
?>
        <form action="index.php" method="post" enctype="multipart/form-data">
            <input type="hidden" name="MAX_FILE_SIZE" value="29000000">
            <input type="file" name="file_upload"><br><br>
            <input type="submit" name="submit" value="SubirArchivo">
        </form>
    </body>
</html>
  #2 (permalink)  
Antiguo 12/10/2017, 20:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.135
Antigüedad: 2 años, 5 meses
Puntos: 224
Respuesta: Actualizacionde campo en base de datos

solo dire una cosa, no usen MYSQL ya Pase a mysqli o PDO, la libreria mysql esta depreciada y hay servidores que ya no la admiten al actualizar la version de php.

Por otro lado en $archivo esta intentando guardar o actualizar una ruta competa en un campo, pues piensa si algú día cambias la ruta de los archivos por x necesidad, la actualizacion de esta seria un total fastidios, te recomendaria guardar solo el nombre del archivo y la ruta menejala por html
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 17/10/2017, 14:32
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 128
Antigüedad: 7 años, 2 meses
Puntos: 10
Respuesta: Actualizacionde campo en base de datos

Cita:
Iniciado por xfxstudios Ver Mensaje
solo dire una cosa, no usen MYSQL ya Pase a mysqli o PDO, la libreria mysql esta depreciada y hay servidores que ya no la admiten al actualizar la version de php.

Por otro lado en $archivo esta intentando guardar o actualizar una ruta competa en un campo, pues piensa si algú día cambias la ruta de los archivos por x necesidad, la actualizacion de esta seria un total fastidios, te recomendaria guardar solo el nombre del archivo y la ruta menejala por html
he cambiado el codigo las conexiones pero no entiedo no me actualiza la ruta y tod lo demas lo hace bien

Código PHP:

<?php
$numero 
count($_GET);
$tags array_keys($_GET);// obtiene los nombres de las varibles
$valores array_values($_GET);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero;$i++){
$
$tags[$i]=$valores[$i];
}

$err_msg = array(
    
UPLOAD_ERR_OK => 'Archivo subido correctamente.',
    
UPLOAD_ERR_INI_SIZE => 'El tamaño del archivo ha excedido el tamaño indicado en php.ini .',
    
UPLOAD_ERR_FORM_SIZE => 'El tamaño del archivo ha excedido el tamaño máximo para este formulario.',
    
UPLOAD_ERR_PARTIAL => 'El archivo ha sido subido parcialmente.',
    
UPLOAD_ERR_NO_FILE => 'El archivo no existe.',
    
UPLOAD_ERR_NO_TMP_DIR => 'El directorio temporal no existe.',
    
UPLOAD_ERR_CANT_WRITE => 'No se puede escribir en el disco.',
    
UPLOAD_ERR_EXTENSION => 'Error de extensión PHP.'
);
$tipos_permitidos = array('jpg''jpeg''png''pdf''word'); //modificar estensiones
$email=$_GET["email"];
if (isset(
$_POST["submit"])) {
    
$fecha date('d-m-Y'time());
    
$nombre_temp $_FILES["file_upload"]["tmp_name"];
    
$nuevo_nombre $_FILES["file_upload"]["name"];
    
$primer_caracter strtoupper(substr($nuevo_nombre01));
    
$destino "subidas/carpeta_" $primer_caracter "-$fecha/" basename($nuevo_nombre);
    
$archivo$nuevo_nombre ;
    
 if (!
file_exists("subidas/carpeta_" $primer_caracter "-" $fecha)) {
        
mkdir("subidas/carpeta_" $primer_caracter "-" $fecha);
    }
    if (
move_uploaded_file($nombre_temp$destino)) {
            
$mensaje "Archivo correctamente subido";
            

        
$mime explode("."$nuevo_nombre);
        
$count count($mime);
        
$count--;

        
$a in_array($mime[$count], $tipos_permitidos) ? TRUE FALSE;
        if (!
$a) {
            echo 
"Tipo de archivo no permitido";
            exit();
        }
    } else {
        
$msg $err_msg[$_FILES['file_upload']['error']];
        echo 
'<span>' $msg '</span>';
    }


 require_once 
'mysql-login.php';
     try {
$con = new PDO('mysql:host='.$hostname.';dbname='.$database$username$password);
print 
"Conexión exitosa!";
}
catch (
PDOException $e) {
print 
"¡Error!: " $e->getMessage() . "
"
;
die();
}
$query "SELECT * FROM usuarios_junta where email='".$email."'";
$resultado $con->query($query); 
foreach  (
$resultado as $rows) { 
$count $con->exec(" UPDATE  usuarios_junta SET archivo=".$archivo." WHERE email=".$email." ");
print(
$count." Filas afectadas");

$resultado =null;
}

$con =null;
}    
    
?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Formulario para subir archivos</title>
    </head>

    <body>
        <h1>Seleccionar un archivo</h1>
        
        <?php

        
        
if (isset($mensaje)) {
            echo 
$mensaje "<br>";
        }
        
?>
        <form action="index.php" method="post" enctype="multipart/form-data">
            <input type="hidden" name="MAX_FILE_SIZE" value="29000000">
            <input type="file" name="file_upload"><br><br>
            <input type="submit" name="submit" value="SubirArchivo">
        </form>
    </body>
</html>
  #4 (permalink)  
Antiguo 17/10/2017, 17:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.740
Antigüedad: 9 años, 3 meses
Puntos: 2112
Respuesta: Actualizacionde campo en base de datos

Antes de ejecutar la consulta muéstrala en pantalla y verás algo como esto:

Código MySQL:
Ver original
  1. UPDATE usuarios_junta SET archivo=nombre de archivo.ext WHERE email = [email protected]

Ya viste el error?
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 17/10/2017, 22:11
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 128
Antigüedad: 7 años, 2 meses
Puntos: 10
Respuesta: Actualizacionde campo en base de datos

Cita:
Iniciado por Triby Ver Mensaje
Antes de ejecutar la consulta muéstrala en pantalla y verás algo como esto:

Código MySQL:
Ver original
  1. UPDATE usuarios_junta SET archivo=nombre de archivo.ext WHERE email = [email protected]

Ya viste el error?
hola gracias el error estaba en que al enviar el archivo el correo que recibo por get se perdia donde el formulario esta en post

la solucion fue esta
Código HTML:
 <input type="hidden" name="email" value="<?php echo $email ;?>"> 
un campo hidden con el email capturado por el get el el formulario de carga, vuelvo a enviar el email ahora por post junto con la informacion del archivo y la recupero aqui donde ya todo funciona normal.
Código PHP:
Ver original
  1. f (isset($_POST["submit"])) {
  2.     $email=$_POST["email"];
  3.     $fecha = date('d-m-Y', time());
  4.     $nombre_temp = $_FILES["file_upload"]["tmp_name"];
  5.     $nuevo_nombre = $_FILES["file_upload"]["name"];
  6.     $primer_caracter = strtoupper(substr($nuevo_nombre, 0, 1));
  7.     $destino = "subidas/carpeta_" . $primer_caracter . "-$fecha/" . basename($nuevo_nombre);

gracias por la ayuda ..
  #6 (permalink)  
Antiguo 17/10/2017, 22:19
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 128
Antigüedad: 7 años, 2 meses
Puntos: 10
Respuesta: Actualizacionde campo en base de datos

Problrma resuelto ahi va solucion
Código PHP:
Ver original
  1. <?php
  2. $numero = count($_GET);
  3. $tags = array_keys($_GET);// obtiene los nombres de las varibles
  4. $valores = array_values($_GET);// obtiene los valores de las varibles
  5.  
  6. // crea las variables y les asigna el valor
  7. for($i=0;$i<$numero;$i++){
  8. $$tags[$i]=$valores[$i];
  9. }
  10.  
  11. $err_msg = array(
  12.     UPLOAD_ERR_OK => 'Archivo subido correctamente.',
  13.     UPLOAD_ERR_INI_SIZE => 'El tamaño del archivo ha excedido el tamaño indicado en php.ini .',
  14.     UPLOAD_ERR_FORM_SIZE => 'El tamaño del archivo ha excedido el tamaño máximo para este formulario.',
  15.     UPLOAD_ERR_PARTIAL => 'El archivo ha sido subido parcialmente.',
  16.     UPLOAD_ERR_NO_FILE => 'El archivo no existe.',
  17.     UPLOAD_ERR_NO_TMP_DIR => 'El directorio temporal no existe.',
  18.     UPLOAD_ERR_CANT_WRITE => 'No se puede escribir en el disco.',
  19.     UPLOAD_ERR_EXTENSION => 'Error de extensión PHP.' );
  20. $tipos_permitidos = array('jpg', 'jpeg', 'png', 'pdf', 'word'); //modificar estensiones
  21.  
  22. if (isset($_POST["submit"])) {
  23.     $email=$_POST["email"];
  24.     $fecha = date('d-m-Y', time());
  25.     $nombre_temp = $_FILES["file_upload"]["tmp_name"];
  26.     $nuevo_nombre = $_FILES["file_upload"]["name"];
  27.     $primer_caracter = strtoupper(substr($nuevo_nombre, 0, 1));
  28.     $destino = "subidas/carpeta_" . $primer_caracter . "-$fecha/" . basename($nuevo_nombre);
  29.    
  30.    
  31.      require_once 'mysql-login.php';
  32.      try {
  33. $con = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password);
  34. print "Conexión exitosa!";
  35. }
  36. catch (PDOException $e) {
  37. print "¡Error!: " . $e->getMessage() . "
  38. ";
  39. die();
  40. }
  41.  
  42. $query = "SELECT * FROM usuarios_junta where email='".$email."'";
  43.  
  44. $resultado = $con->query($query);
  45. foreach ( $resultado as $rows) {
  46.  
  47. $count = $con->exec(" UPDATE  usuarios_junta SET archivo='". $_FILES["file_upload"]["name"]."' WHERE email='".$email."' ");
  48. print($count." Filas afectadas");
  49.  
  50.  
  51. }  
  52. $con =null;    
  53.    
  54.  if (!file_exists("subidas/carpeta_" . $primer_caracter . "-" . $fecha)) {
  55.         mkdir("subidas/carpeta_" . $primer_caracter . "-" . $fecha);
  56.     }
  57.     if (move_uploaded_file($nombre_temp, $destino)) {
  58.             $mensaje = "Archivo correctamente subido";
  59.            
  60.  
  61.         $mime = explode(".", $nuevo_nombre);
  62.         $count = count($mime);
  63.         $count--;
  64.  
  65.         $a = in_array($mime[$count], $tipos_permitidos) ? TRUE : FALSE;
  66.         if (!$a) {
  67.             echo "Tipo de archivo no permitido";
  68.             exit();
  69.         }
  70.     } else {
  71.         $msg = $err_msg[$_FILES['file_upload']['error']];
  72.         echo '<span>' . $msg . '</span>';
  73.     }
  74.  
  75. }
  76.  
  77. ?>
  78. <!DOCTYPE HTML>
  79. <html>
  80.     <head>
  81.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  82.         <title>Formulario para subir archivos</title>
  83.     </head>
  84.  
  85.     <body>
  86.         <h1>Seleccionar un archivo</h1>
  87.        
  88.         <?php
  89.  
  90.         echo $email;
  91.         echo $nuevo_nombre;
  92.         if (isset($mensaje)) {
  93.             echo $mensaje . "<br>";
  94.         }
  95.         ?>
  96.         <form action="index.php" method="post" enctype="multipart/form-data">
  97.             <input type="hidden" name="email" value="<?php echo $email ;?>">
  98.             <input type="file" name="file_upload"><br><br>
  99.             <input type="submit" name="submit" value="SubirArchivo">
  100.         </form>
  101.     </body>
  102. </html>



La zona horaria es GMT -6. Ahora son las 04:01.