Foros del Web » Programando para Internet » PHP »

Enviar varias url de imágenes a la BDD

Estas en el tema de Enviar varias url de imágenes a la BDD en el foro de PHP en Foros del Web. Hola a todos , hace días tube un problema, tengo un formulario en el cual se cargar varias imágenes, y se envían al servidor y ...
  #1 (permalink)  
Antiguo 21/02/2011, 21:32
 
Fecha de Ingreso: enero-2011
Ubicación: C,M
Mensajes: 44
Antigüedad: 13 años, 1 mes
Puntos: 2
Enviar varias url de imágenes a la BDD

Hola a todos, hace días tube un problema, tengo un formulario en el cual se cargar varias imágenes, y se envían al servidor y a la base de datos. Pero no se enviaban todas, solo la que estaba en el primer input, pero logre solucionarlo.

Ahora mi problema, es que no se envían las url, de esas imágenes a la base de datos.

Mi código de operación es el siguiente:


Código PHP:
 function getExtension($str) {
         
$e strrpos($str,".");
         if (!
$e) { return ""; }
         
$l strlen($str) - $e;
         
$ext substr($str,$e+1,$l);
      return 
$ext;
 }
 
 function 
imp_menu()
 {
     return 
'    
     

//for($a=0;$a<count($_FILES["image"]['
tmp_name']);$a++) {
// Esta variable se utiliza como una bandera. El valor se inicializa con 0 (es decir, no hay error que se encuentran)
// y se cambia a 1 si un occures error.
// Si el error occures el archivo no se cargará.
 $errors=0;
//Comprueba si el formulario ha sido enviado

$cont =count($_FILES["image"]['
name']); 
        for ($j=0;$j<=$cont;$j++){ 
    
if(isset($_POST['
Submit'])) 
 {

            
     //Leer el nombre del fichero
     $image=$_FILES['
image']['name'][$j];
     
$x=$j; 

do{
    
$x++;

        
           $archivonombre=str_replace("","n",$archivo_name);
           $archivonombre=str_replace("","N",$archivonombre);
           $archivonombre=str_replace("","a",$archivonombre);
           $archivonombre=str_replace("","e",$archivonombre);
           $archivonombre=str_replace("","i",$archivonombre);
           $archivonombre=str_replace("","o",$archivonombre);
           $archivonombre=str_replace("","u",$archivonombre);
           $archivonombre=str_replace("","A",$archivonombre);
           $archivonombre=str_replace("","A",$archivonombre);
           $archivonombre=str_replace("","E",$archivonombre);
           $archivonombre=str_replace("","E",$archivonombre);
           $archivonombre=str_replace("","I",$archivonombre);
           $archivonombre=str_replace("","I",$archivonombre);
           $archivonombre=str_replace("","O",$archivonombre);
           $archivonombre=str_replace("","O",$archivonombre);
           $archivonombre=str_replace("","U",$archivonombre);
           $archivonombre=str_replace("","U",$archivonombre);
           $archivonombre=str_replace("","u",$archivonombre);
           $archivonombre=str_replace("","U",$archivonombre);
           $archivonombre=str_replace(" ","_",$archivonombre);
           $archivonombre=str_replace("&","_",$archivonombre);
           $archivonombre=str_replace("'","
_",$archivonombre);
           $archivonombre=str_replace("
(","_",$archivonombre);
           $archivonombre=str_replace("
)","_",$archivonombre);
           $archivonombre=str_replace("
[","_",$archivonombre);
           $archivonombre=str_replace("
]","_",$archivonombre);
           $archivonombre=str_replace("
#","_",$archivonombre);
           
$archivonombre=str_replace("%","_",$archivonombre);
           
           
    
$ran=rand();
      
$dom=rand();
  
      
$random $ran.$dom;
    
    
$imagename=$random.$archivonombre;
           

     
//Si no esta vacio
     
if ($image !=""
     {
     
//Obtener el nombre original del fichero
         
$filename stripslashes($_FILES['image']['name'][$j]);
     
//Obtener la extension del fichero
          
$extension getExtension($filename);
         
$extension strtolower($extension);
     
//Obtener la extension del fichero
 
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
         {
        
//Obtener la extension del fichero
             
echo '<h1>Exstencion desconocida!</h1>';
             
$errors=1;
         }
         else
         {
//Obtenemos el tmaño de la imagen en bytes
 //$_FILES['image']['tmp_name'] temporal fichero
//El archivo se almacena en el servidor
 
$size=filesize($_FILES['image']['tmp_name'][$j]);

//Se compara el tamaño del fichero
if ($size MAX_SIZE*5000)
{
    echo 
'<h1>Te has excedido del limite!</h1>';
    
$errors=1;
}

//Daremos un nombre unico con extension
$image_name="$imagename.$extension";
//Donde se guardaran las imagenes
$newname="../images/".$image_name;
$dir_thumb "../images/bolGallery/";
$destTHU$newname.$dir_thumb;

//Se verifica si fue subida, e imprime errores
$copied copy($_FILES['image']['tmp_name'][$j], $newname);
if (!
$copied
    
    echo 
'<h1>La copia fue un exito!</h1>';
    
$errors=1;
    
}}}
}
while(
$x<$j); {
//Si no hubo errores, imprimo mensaje 
 
if(isset($_POST['Submit']) && !$errors
 {
 
     
//
    //Si la foto fue subida correctamente entonces procedo a aplicarle las etiquetas.
    //
    
            
     
echo '<h1>Se ha subido el archivo con éxito!  '.$newname.'. <br>
        
     <ul style="list-style-type:none;">
   <li class="button" style="float:left;"><a class="button" href="index.php"">Volver a la galeria</a></li>
   <li class="button" style="float:left;"><a class="button" href="upload_img.php"">Insertar mas imagenes</a></li>
   <li class="button" style="float:left;"><a class="button" href="admin.php"">Panel de usuario</a></li>
   </ul>
    <br><br>'
;
    
    
$url $newname;
    
$test=$_POST['test'];
    
$newLabel=$_POST['newLabel'];
    if ((
$test || $newLabel) && $url){
    
        
//Verifico que el archivo que acabo de insertar exista.
        
if(file_exists($url))
        {
            
mysql_query("insert into photos values ('','".$url."','0')");
            
$result mysql_query("select id from photos where url='".$url."'");
            
$row mysql_fetch_row($result);
            
$photo_id $row[0];
            
        
        
            
//Si selecciono alguna etiqueta de las de la lista
            
if($test)
            {
                echo 
"<br> Las siguientes etiquetas fueron agregadas: <br>";
                
                 foreach (
$test as $t)
                 {
                    
                    echo 
$t." <br>";
                    
                    
$result mysql_query("select id from labels where label='".$t."'");
                    
$row mysql_fetch_row($result);
                    
$label_id $row[0];
                    
                    
mysql_query("insert into label_photo values ('".$label_id."','".$photo_id."')");
                 
                 }
            }
            
     
    
            
//Si decidio insertar nuevas etiquetas
            
if($newLabel)
            {
                echo 
" Las siguientes etiquetas fueron agregadas: <br>";
                
$etis explode(",",$newLabel);
                
                
//Acabo de picar todas las etiquetas nuevas introducidas con la funcion explode
                //ahora procedo a insertarlas en la BD y aplicarselas a la fotografia.
                
for($i 0;$i<count($etis);$i++)
                {
                    echo 
$etis[$i]." <br>";
                    
mysql_query("insert into labels values ('','".$etis[$i]."')");
                    
$result mysql_query("select id from labels where label='".$etis[$i]."'");
                    
$row mysql_fetch_row($result);
                    
$label_id $row[0];
                    
                    
mysql_query("insert into label_photo values ('".$label_id."','".$photo_id."')");
                }
            
            }
             
             
        }
        else
        {
        
            echo
'El archivo no existe: '.$url;
        
        }
    }
}}}}


?> 


Gracias de antemano, cualquier recomendación o sugerencia, se agradece.

Saludos
  #2 (permalink)  
Antiguo 21/02/2011, 21:32
 
Fecha de Ingreso: enero-2011
Ubicación: C,M
Mensajes: 44
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Enviar varias url de imágenes a la BDD

La consulta que me guarda es la siguiente:

Código PHP:
Ver original
  1. $url = $newname;
  2.     $test=$_POST['test'];
  3.     $newLabel=$_POST['newLabel'];
  4.     if (($test || $newLabel) && $url){
  5.      
  6.         //Verifico que el archivo que acabo de insertar exista.
  7.         if(file_exists($url))
  8.         {
  9.             mysql_query("insert into photos values ('','".$url."','0')");
  10.             $result = mysql_query("select id from photos where url='".$url."'");
  11.             $row = mysql_fetch_row($result);
  12.             $photo_id = $row[0];


Mi formulario, es el siguiente:

Código HTML:
Ver original
  1. <form name="newad" method="post" enctype="multipart/form-data"  action="operaciones.php">
  2.  <table width="100%" border="0" cellspacing="0" cellpadding="0">
  3.    
  4.    
  5.    
  6.    
  7.    <tr>
  8.      <td colspan="2" align="right" ><?php echo imp_menu(); ?></td>
  9.    </tr>
  10.  </table><br><br><br>
  11.  <div id="stylized" class="myform">
  12.  
  13.  <h1>Rellena el formulario</h1>
  14. <p>Debes llenar los campos obligatorios *</p>
  15.   <label>Obra
  16.     <span class="small">Nombre de la obra</span>
  17.   </label>
  18.    <input name="nombre" type="text" size="70" maxlength="70" />
  19.    <label>Nº Contrato
  20.     <span class="small">Numero de contrato</span>
  21.   </label>
  22.    <input name="ncontrato" type="text" size="20" maxlength="250" />
  23.    <label>Lugar
  24.     <span class="small">Lugar de obra</span>
  25.   </label>
  26.     <input name="lugar" type="text" size="20" maxlength="70" />
  27.  <label>Fecha
  28.     <span class="small">Fecha de obra</span>
  29. <input name="fecha" value="Dia-Mes-Año" type="text" id="dateArrival" onClick="popUpCalendar(this, form.dateArrival, 'dd-mm-yyyy');" size="10">
  30. <br>
  31.  
  32.  
  33.  
  34.  
  35. <!-- Supervisores -->
  36. <label>Supervisor<span class="small">Eliga el supervisor  </span></label><select name="listasupervisor">
  37.  
  38.       <option value="0" selected="selected"></option>
  39. <?
  40.      mysql_connect('127.0.0.1','root','*******')or die ('Ha fallado la conexión: '.mysql_error());
  41.                 mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  42.                
  43.        //Me trae los supervisores desde la DB
  44. $consulta_sql1=mysql_query("select snombre from supervisor");
  45.  
  46. while ($registro1 = mysql_fetch_array($consulta_sql1))
  47. {
  48. ?>
  49.         <option value="<?=$registro1["snombre"];?>">
  50.          <?=$registro1["snombre"];?>
  51.           </option>
  52.         <?
  53. }
  54. ?>
  55.  
  56. <label>Categoria<span class="small">Eliga la categoria</span></label><select name="listacategoria" >
  57.  
  58.         <option value="0"  selected="selected"></option>
  59.        
  60.         <?
  61.        mysql_connect('127.0.0.1','root','******')or die ('Ha fallado la conexión: '.mysql_error());
  62.                 mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  63.        //Me trae las categorias desde la DB
  64. $consulta_sql2=mysql_query("select cname from category");
  65.  
  66. while ($registro2 = mysql_fetch_array($consulta_sql2))
  67. {
  68. ?>
  69.         <option value="<?=$registro2["cname"];?>">
  70.          <?=$registro2["cname"];?>
  71.           </option>
  72.         <?
  73. }
  74. ?>
  75.    
  76.        
  77.  
  78.                
  79.    <label>Imagenes a subir: <span class="small">Selecciona la imagenes</span></label>
  80.         <!-- Esta div contendrá todos los campos file que creemos -->
  81.    <div id="adjuntos">
  82.         <!-- Hay que prestar atención a esto, el nombre de este campo debe siempre terminar en []
  83.        como un vector, y ademas debe coincidir con el nombre que se da a los campos nuevos
  84.        en el script -->
  85.        
  86.        
  87.    <input type="file" name="image[]" />
  88.    </div>
  89.    <a href="#" onClick="addCampo()"><label>Subir otra imagen</a> <span class="small">Cargar otra imagen</span></label>
  90.  
  91.  
  92.  
  93.  <script type="text/javascript">
  94. var numero = 0;          
  95. evento = function (evt) {
  96.    return (!evt) ? event : evt;
  97. }
  98. addCampo = function () {
  99.    nDiv = document.createElement('div');
  100.    nDiv.className = 'archivo';
  101.    nDiv.id = 'file' + (++numero);
  102.    nCampo = document.createElement('input');
  103.    nCampo.name = 'image[]';
  104.    nCampo.type = 'file';
  105.    a = document.createElement('a');
  106.    a.name = nDiv.id;
  107.    a.href = '#';
  108.    a.onclick = elimCamp;
  109.    a.innerHTML = 'Eliminar';
  110.    nDiv.appendChild(nCampo);
  111.    nDiv.appendChild(a);
  112.    container = document.getElementById('adjuntos');
  113.    container.appendChild(nDiv);
  114. }
  115. elimCamp = function (evt){
  116.    evt = evento(evt);
  117.    nCampo = rObj(evt);
  118.    div = document.getElementById(nCampo.name);
  119.    div.parentNode.removeChild(div);
  120. }
  121. rObj = function (evt) {
  122.    return evt.srcElement ?  evt.srcElement : evt.target;
  123. }
  124.    
  125.  
  126. <!--Archivo: <input name="image[]" type="file" size="150" maxlength="150"> -->
  127.  
  128.          <p>&nbsp;</p>
  129.          
  130.      <label>Etiquetas<span class="small">Agrega etiquetas</span></label>
  131.       <input type="text" name="newLabel" id="newLabel"  />
  132.      
  133.  
  134.        <br><br> <label>Etiquetas existentes:<span class="small">Elige alguna etiqueta</span></label>
  135.  
  136. <select name="test[]" multiple="multiple">
  137. <?php
  138.  
  139.     $result = mysql_query("select label from labels");
  140.         while($row = mysql_fetch_row($result)) echo'<option value="'.$row[0].'">'.$row[0].'</option>';
  141.        
  142. ?>
  143.    
  144.     <input class="button" name="Submit" type="submit" value="Guardar" ></td></tr>
  145.     <div class="spacer"></div>
  146.  </table>  
  147.  
  148.  
  149.  </form>
  150. </div>

NOTA: No lo agregue arriba, por que me dio error en limite de caracteres.

Saludos
  #3 (permalink)  
Antiguo 22/02/2011, 18:11
 
Fecha de Ingreso: enero-2011
Ubicación: C,M
Mensajes: 44
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Enviar varias url de imágenes a la BDD

Bueno, mi problema regreso,si me envía las imágenes al servidor, pero no me muestra nada al guardar, y no me envía las url a la bdd, creo que mi while esta mal, alguien ve algún error?

Saludos


Última edición por Rudeck; 22/02/2011 a las 18:34

Etiquetas: enviar, url, bbdd
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 01:36.