Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/07/2012, 07:35
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Upload múltiple a base datos mysql

hola de nuevo charlibi27 aqui te paso el codigo, (no te lo envio por mail asi si alguien mas le sirve puede encontrarlo en esta web) en tu servidor debes tener una carpeta llamada "Img-Viviendas" para que funcione, el script es este:
Código PHP:
Ver original
  1. <?php
  2. $conexionn = mysql_connect("localhost","user","pass"); //Datos de Acceso
  3. mysql_select_db('test'); //Base de datos
  4.  
  5. if ($_POST["action"] == "upload") {
  6.     $Descripcion=$_POST[Descripcion];
  7.     $Datos[Insert]="INSERT INTO viviendas VALUES('' , '".$_POST[Vivienda]."' , '".$_POST[Descripcion]."')";
  8.     $Datos[Consulta]=mysql_query($Datos[Insert]);
  9.     $Datos[Consulta]=mysql_query('SELECT LAST_INSERT_ID()');
  10.     $IDNV=mysql_result($Datos[Consulta],0);
  11.     for ($i=1;$i<=10;$i++){
  12.         $IDIMG='IMG'.$i;
  13.         $Extencion = explode(".", $_FILES[$IDIMG]['name']);
  14.         $NombreNuevo='Img-'.$IDNV.'-'.rand(0, 30).rand(0, 30).rand(0, 30).'.'.$Extencion[1];       
  15.         $tamano = $_FILES[$IDIMG]['size'];
  16.         $archivo = $_FILES[$IDIMG]['name'];
  17.         if ($archivo != "") {
  18.             $destino =  "Img-Viviendas/".$NombreNuevo;
  19.             if (copy($_FILES[$IDIMG]['tmp_name'],$destino)) {
  20.                 $status.= "Archivo subido: <b>".$archivo."</b> <br />";
  21.                 $Datos[Insert]="INSERT INTO imagenes VALUES('".$IDNV."' , '".$NombreNuevo."' , '".$_POST['Descripcion'.$IDIMG]."')";
  22.                 $Datos[Consulta]=mysql_query($Datos[Insert]);
  23.             } else {
  24.                 $status = "Error al subir el archivo";
  25.             }
  26.         } else {
  27.             $status.= "Error Archivo No Encontrado <br />";
  28. }   }   }
  29. ?>
  30. <html>
  31. <head>
  32.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  33. </head>
  34. <body>
  35.  
  36.    <b>Sistema de carga de archivos</b>
  37. <hr />
  38.   <form action="upload.php" method="post" enctype="multipart/form-data">
  39.         Nombre de la Vivienda: <input name="Vivienda" type="Text" />
  40.         Descripcion de la vivienda: <textarea name="Descripcion"></textarea>
  41.         <br />Imagenes:<br />
  42. <?php
  43.     for ($i=1;$i<=10;$i++){
  44.         $IDIMG='IMG'.$i;
  45.         echo('<input name="'.$IDIMG.'" type="file" class="casilla" id="archivo" size="35" /><br />
  46.         Descripcion: <textarea name="Descripcion'.$IDIMG.'"></textarea>    
  47.         <hr />
  48.         ');
  49.     }    
  50. ?>
  51.       <input name="enviar" type="submit" class="boton" id="enviar" value="Guardar Datos" />
  52.       <input name="action" type="hidden" value="upload" />    </td>  
  53.     </form>
  54.     <hr />
  55.     <b style="color:#990000"><?php echo $status; ?></b>
  56.     <hr />
  57.     <b>Listado</b>
  58.     <hr />
  59.     <td class="infsub">
  60.    
  61.         <?php
  62.             $Vivienda='';
  63.             $Datos[Consulta]=mysql_query('SELECT V.Nombre NVIV, V.Descripcion DVIV, I.Nombre NIMG , I.Descripcion DIMG FROM viviendas V LEFT JOIN imagenes I ON V.ID=I.IDVIV');
  64.             while($Info=mysql_fetch_array($Datos[Consulta])){
  65.                 if($Info[NVIV]!=$Vivienda){    
  66.                     if($Vivienda!=''){echo('</table>');}
  67.                     echo('<hr /><b>'.$Info[NVIV].'</b><br /><p>'.$Info[DVIV].'</p><hr /><table>');
  68.                     $Vivienda=$Info[NVIV];
  69.                 }
  70.                 echo('<tr><td><img src="Img-Viviendas/'.$Info[NIMG].'" width="200px" /></td><td>'.$Info[DIMG].'</td></tr>');
  71.             }
  72.         ?>
  73. </table>
  74. </body>
  75. </html>
no tiene nada de css por lo que notaras que esta media tosca la interface, ya tu la adaptaras a tu web si te sirve, el codigo tambien es medio rustico puesto que adapte el que tenia a ts necesidades y no lo puli del todo pero ya tu le agegaras o quitaras detalles a tu convniencia.
para que funcione debes tener la siguientes tablas en la base de datos:

Código MySQL:
Ver original
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.0.1
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 23-07-2012 a las 10:34:30
  7. -- Versión del servidor: 5.1.36
  8. -- Versión de PHP: 5.3.1
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Base de datos: `test`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Estructura de tabla para la tabla `imagenes`
  20. --
  21.  
  22. CREATE TABLE IF NOT EXISTS `imagenes` (
  23.   `IDVIV` int(11) NOT NULL,
  24.   `Nombre` char(20) NOT NULL,
  25.   `Descripcion` text NOT NULL,
  26.   KEY `IDVIV` (`IDVIV`),
  27.   KEY `IDIMG` (`Nombre`)
  28. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  29.  
  30. --
  31. -- Volcar la base de datos para la tabla `imagenes`
  32. --
  33.  
  34.  
  35. -- --------------------------------------------------------
  36.  
  37. --
  38. -- Estructura de tabla para la tabla `viviendas`
  39. --
  40.  
  41. CREATE TABLE IF NOT EXISTS `viviendas` (
  42.   `ID` int(11) NOT NULL AUTO_INCREMENT,
  43.   `Nombre` char(30) NOT NULL,
  44.   `Descripcion` char(100) NOT NULL,
  45.   PRIMARY KEY (`ID`)
  46. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  47.  
  48. --
  49. -- Volcar la base de datos para la tabla `viviendas`
  50. --
comenta si tienes alguna duda saludos!