Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/02/2010, 09:54
esaenz22
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 6 meses
Puntos: 7
Respuesta: [APORTE] mantenimiento de datos con su respectiva imagen si que esta se pi

continuacion del aporte parte II.

una vez que hemos creado el archivo php para la conexion de la base de datos, procederemos a crear los archivos php para agregar, editar y borrar la imagen.

lo primero que vamos a hacer es crear un archivo llamado funciones para hacer el insert, update y delete de los datos correspondientes.

creamos la funcion agregardatos dandole como parametros $nombres,$apellidos,$direccion,$edad,$telefono,$em ail,$sexo,$foto.

en en caso de editardatos le colocaremos el primer parametro $codigo para identificar el id de la tabla datos y lo demas seria ya colocarle los parametros como en la funcion agregardatos.

Código PHP:
Ver original
  1. function agregardatos($nombres,$apellidos,$direccion,$edad,$telefono,$email,$sexo,$foto){  
  2.     global $cn; //variable global de conexion.
  3.     $sql_datos  = "insert into datos(nombres,apellidos,direccion,edad,telefono,email,sexo,foto)";
  4.     $sql_datos .= "values('$nombres','$apellidos','$direccion','$edad','$telefono','$email','$sexo','$foto')";
  5.    
  6.     $cn->query($sql_datos) or die(mysql_error());
  7.    
  8.     header("Location:index.php");
  9.            
  10. }
  11.  
  12. function editardatos($codigo,$nombres,$apellidos,$direccion,$edad,$telefono,$email,$sexo,$foto){
  13.     global $cn;
  14.     $sql_edit  = "update datos set nombres = '$nombres', apellidos = '$apellidos', direccion = '$direccion', ";
  15.     $sql_edit .= "edad = '$edad', telefono = '$telefono', email = '$email', sexo = '$sexo', foto = '$foto' ";
  16.     $sql_edit .= "where idagenda = '$codigo'";
  17.    
  18.     $cn->query($sql_edit) or die(mysql_error());
  19.    
  20.     header("Location:index.php");
  21.            
  22. }  
  23.  
  24. function borrardatos($cod){
  25.     global $cn;
  26.     $eliimage = "select * from datos where idagenda = '$cod'";
  27.     $rowimages = mysql_query($eliimage) or die(mysql_error());
  28.     $rs_image = mysql_fetch_array($rowimages);
  29.    
  30.     $foto = $rs_image['foto'];
  31.     if($foto!=""){ //preguntamos si la foto es diferente a vacio, que borre la imagen.
  32.         @unlink("fotos/$foto");
  33.     }
  34.     $sql_del = "delete from datos where idagenda = '$cod'";
  35.     $cn->query($sql_del) or die(mysql_error());
  36.    
  37.     header("Location:index.php");
  38. }

despues crearemos el formulario para agregar y editar datos.

agregar.php

Código HTML:
Ver original
  1. <form action="process.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  2.   <table width="523" border="0" cellpadding="2" cellspacing="0">
  3.     <tr>
  4.       <td width="172"><div align="right">Nombres</div></td>
  5.       <td colspan="2"><input name="nombres" type="text" id="nombres" size="40" /></td>
  6.     </tr>
  7.     <tr>
  8.       <td><div align="right">Apellidos</div></td>
  9.       <td colspan="2"><input name="apellidos" type="text" id="apellidos" size="40" /></td>
  10.     </tr>
  11.     <tr>
  12.       <td><div align="right">Direccion</div></td>
  13.       <td colspan="2"><input name="direccion" type="text" id="direccion" size="40" /></td>
  14.     </tr>
  15.     <tr>
  16.       <td><div align="right">Edad</div></td>
  17.       <td colspan="2"><input name="edad" type="text" id="edad" size="10" /></td>
  18.     </tr>
  19.     <tr>
  20.       <td><div align="right">Telefono</div></td>
  21.       <td colspan="2"><input name="telefono" type="text" id="telefono" size="20" /></td>
  22.     </tr>
  23.     <tr>
  24.       <td><div align="right">E-mail</div></td>
  25.       <td colspan="2"><input name="email" type="text" id="email" size="40" /></td>
  26.     </tr>
  27.     <tr>
  28.       <td><div align="right">Sexo</div></td>
  29.       <td colspan="2"><input type="radio" name="opcion" id="radio" value="M" />
  30.         M
  31.         <input type="radio" name="opcion" id="radio2" value="F" />
  32.         F</td>
  33.     </tr>
  34.     <tr>
  35.       <td><div align="right">Foto</div></td>
  36.       <td colspan="2"><input type="file" name="foto" id="foto" /></td>
  37.     </tr>
  38.     <tr>
  39.       <td>&nbsp;</td>
  40.       <td colspan="2">&nbsp;</td>
  41.     </tr>
  42.     <tr>
  43.       <td>&nbsp;</td>
  44.       <td width="148"><div align="center">
  45.         <input type="submit" value="Guardar" />
  46.       </div></td>
  47.       <td width="191"><div align="center">
  48.         <input type="button" value="Cancelar" onClick="javascript:history.back(1);" />
  49.       </div></td>
  50.     </tr>
  51.   </table>
  52. </form>

despues creamos el archivo process.php para llamar a las funciones que hemos creado.

Código PHP:
Ver original
  1. include("includes/Conexion.class.php");
  2. include("includes/config.inc.php");
  3. include("funciones.php");  
  4.  
  5. $cn= new Conexion(); //instanciamos la clase.
  6. $cn->conectarse(); //creamos el objeto conectarse().
  7.  
  8. $nombres        = $_POST['nombres'];
  9. $apellidos      = $_POST['apellidos'];
  10. $direccion  = $_POST['direccion'];
  11. $edad           = $_POST['edad'];
  12. $telefono   = $_POST['telefono'];
  13. $email      = $_POST['email'];
  14. $opcion         = $_POST['opcion'];
  15.  
  16. if(!isset($_POST['editar'])){//preguntamos si el valor editar esta definida y si es diferente, que haga el insert.
  17.     //preguntamos si el archivo foto esta vacio
  18.     if(is_uploaded_file($_FILES['foto']['tmp_name'])) {
  19.         #imagen del electrogeno.
  20.         $foto       = $_FILES['foto']['name'];
  21.         $nuevo_foto = str_replace(' ','_',$foto);
  22.         $test       = explode(".",$foto);
  23.        
  24.         $path = "fotos/";
  25.        
  26.         if(strtoupper($test[1])=="JPG" || strtoupper($test[1])=="JPEG")
  27.         {
  28.             $tamano = $_FILES['foto']['size']; // Leemos el tamaño del fichero
  29.             $tamano_max="1048576"; // Tamaño maximo permitido
  30.            
  31.             if($tamano <= $tamano_max){ // Comprovamos el tamaño                          
  32.                 move_uploaded_file($_FILES['foto']['tmp_name'],$path.$nuevo_foto);
  33.                 agregardatos($nombres,$apellidos,$direccion,$edad,$telefono,$email,$opcion,$nuevo_foto);
  34.             }else{
  35.                 echo "<div align = 'center'>La imagen que intenta grabar, excede el peso requerido. El maximo de peso es 500KB.</div>";
  36.                 echo "<br /><br /><br />";
  37.                 echo "<div align = 'center'><a href='javascript:history.back()'>&lt;&lt; Clic aqui para regresar.</div></a>";
  38.             } //cerramos el primer if.
  39.            
  40.         }else{
  41.             echo "<div align = 'center'>La imagen que intenta grabar, debe ser de formato JPG.</div>";
  42.             echo "<br />";
  43.             echo "<div align = 'center'><a href='javascript:history.back()'>&lt;&lt; Clic aqui para regresar.</div></a>";
  44.         } //cerramos el segundo if.
  45.    
  46.     //Si no hay imagen para agregar en la agenda, procederemos a agregar los datos sin la imagen.
  47.     }else{
  48.         agregardatos($nombres,$apellidos,$direccion,$edad,$telefono,$email,$opcion,$nuevo_foto);
  49.        
  50.     } //cerramos el tercer if.
  51.    
  52. } //cerramos el if principal.
  53.  
  54. if(isset($_POST['editar'])){ //preguntamos si el valor editar esta definida.
  55.     if($_POST['editar']=='1'){ //preguntamos si el valor editar es igual a 1.
  56.    
  57.             #editamos la foto del producto.
  58.             if($_FILES['foto']['size'] != '0' ){ //preguntamos si el tamaño del archivo es diferente a 0, que edite los datos con la imagen.          
  59.                 $foto = $_FILES['foto']['name'];
  60.                 $nuevo_foto = str_replace(' ','_',$foto);
  61.                 $test = explode(".",$foto);
  62.                
  63.                 $path = "fotos/";
  64.                
  65.                     if(strtoupper($test[1])=="JPG" || strtoupper($test[1])=="JPEG"){
  66.                         $tamano = $_FILES['foto']['size']; // Leemos el tamaño del fichero
  67.                         $tamano_max="1048576"; // Tamaño maximo permitido
  68.                         if($tamano <= $tamano_max){ // Comprovamos el tamaño                      
  69.                             move_uploaded_file($_FILES['foto']['tmp_name'],$path.$nuevo_foto); 
  70.                             editardatos($_POST['codigo'],$nombres,$apellidos,$direccion,$edad,$telefono,$email,$opcion,$nuevo_foto);
  71.                         }else{
  72.                             echo "<div align = 'center'>La imagen que intenta grabar, excede el peso requerido. El maximo de peso es 500KB.</div>";
  73.                             echo "<br /><br /><br />";
  74.                             echo "<div align = 'center'><a href='javascript:history.back()'>&lt;&lt; Clic aqui para regresar.</div></a>";
  75.                         }
  76.                        
  77.                     }else{
  78.                         echo "<div align = 'center'>La imagen que intenta grabar, debe ser de formato JPG.</div>";
  79.                         echo "<br />";
  80.                         echo "<div align = 'center'><a href='javascript:history.back()'>&lt;&lt; Clic aqui para regresar.</div></a>";
  81.                     } //cerramos el primer if.
  82.                                                            
  83.              //caso contrario, procedera a editar los datos sin la foto.   
  84.                                
  85.             }else{
  86.                         $nuevo_foto = $_POST['nombreFoto'];
  87.                         editardatos($_POST['codigo'],$nombres,$apellidos,$direccion,$edad,$telefono,$email,$opcion,$nuevo_foto);
  88.                        
  89.             } //cerramos el segundo if.                                        
  90.            
  91.  
  92.     } //cerramos el tercer if.
  93.    
  94. } //cerramos el if principal.

explicacion del archivo process.php.

1. primero condiciono si el nombre del archivo foto tiene el valor vacio.

2. luego extraigo la cadena de la variable $foto con la funcion explode y la almaceno en una variable $test almacenandola en un array. el proposito de esto es para hacer la validacion de la imagen si es un jpg, jpeg o gif.

3. despues hago una condicion almacenando la variable $test[1] en un array igualando al tipo de imagen si es jpg, jpeg o gif. si se cumple la primera condicion, sube la imagen, sino, mostrara una respuesta que el tipo de archivo no es permitido.

4. creo una variable $tamano para almacenar el nombre del archivo y crear otra variable $tamano_permitido y almacenar la cantidad de bytes al momento de subir la imagen.

Código PHP:
Ver original
  1. $tamano = $_FILES['foto']['size']; // Leemos el tamaño del fichero
  2. $tamano_max="1048576"; // Tamaño maximo permitido

5. despues, creo una condicion que me permita controlar el tamaño de la imagen. si se cumple la segunda condicion que el tamaño esta permitido, sube la imagen, caso contrario, mostrara una respuesta que el tamaño de la imagen no esta permitido.

6. como mencione antes que si el nombre del archivo foto foto tuviera el valor vacio, puede subir la imagen con los datos, caso contrario solo subira los datos sin la imagen.

Nota. olvide mencionar que deben crear una carpeta para que puedan subir las fotos. en este caso se llamara fotos.

Última edición por esaenz22; 28/02/2010 a las 17:26 Razón: correccion.