Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar rutas en bd

Estas en el tema de Guardar rutas en bd en el foro de PHP en Foros del Web. hola estimados, nuevamente haciendo una consulta: necesito guardar 4 imagenes de avisos, ahasta ahora consegui subir las imagenes a una carpeta de mi server, lo ...
  #1 (permalink)  
Antiguo 18/07/2014, 22:20
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Guardar rutas en bd

hola estimados, nuevamente haciendo una consulta: necesito guardar 4 imagenes de avisos, ahasta ahora consegui subir las imagenes a una carpeta de mi server, lo que no se como hacer es guardar la ruta y nombre, para poder recuperarlas luego y mostrarlas, el codigo que tengo es:
Código PHP:
<?php
// Conexion
require ('crud/conexionDB.php');
//Funcion Insertar
require ('crud/funcionesCrud.php');


if(isset(
$_POST["enviar"]))
{
    if(isset(
$_FILES['fotosavisos']))
    {
        
//tomamos el nombre del archivo
        
$nombreArrat=$_FILES['fotosavisos']['name'];
        
//nombre_temporal
        
$nombreTemporal=$_FILES['fotosavisos']['tmp_name'];
        
//tipo de Arhivo
        
$tipoArchivo=$_FILES['fotosavisos']['type'];
        
        for(
$i 0$i count($nombreTemporal); $i++){
            
//mover el archivo al directorio de las imagenes
            
if(move_uploaded_file($nombreTemporal[$i], "imagenes_avisos/".$nombreArrat[$i])){
                echo 
$nombreArrat[$i]."Archivos Subidos Con Exito";
            }else{
                echo 
"No se pudieron subir las imagenes".$nombreArrat[$i];
            }
        }
        
    }
    
    
//recoger las variables que se insertaran
    
    
    //Realizamos la Insercion en la Base de Datos
        
        
$modelo= new Operaciones();
        
$modelo->insertInto='aviso_imagen';
        
$modelo->insertColumns='titulo_aviso, fotosaviso, img2';
        
$modelo->insertValues="'$titulo_aviso', '$img1', '$img2'";
        
$mensaje$modelo->mensaje;
        
    
}
Me lei todos los temas similares en el foro y no encuentro nada similar, mi estructura de tabla mysql es:
id_aviso (ai)
titulo text
img1
img2
img3...
img4...

Gracias a todos desde ya...
  #2 (permalink)  
Antiguo 19/07/2014, 02:03
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Guardar rutas en bd

Se supone que en el campo img1,img2... ya le estas metiendo la ruta a la imagen en tipo texto.

Es como si metes el nombre, tan solo tienes que indicarlo, y en el INSERT le metes el valor de $Ruta.
Código PHP:
$Ruta "imagenes_avisos/".$nombreArrat[$i]; 
No se si estarás usando una clase ya preestablecida o es una propia pero te recomiendo que la hagas con esta estructura, así no tendrías problemas para meter los valores que se "repitan".
Código PHP:
$DB->Insertar('NombreTabla');
$DB->Campo('NombreCampo'$Valor);
$DB->Campo('NombreCampo'$Valor);
$ID $DB->Ejecuta(); 
Este fragmento de código es de una clase mía propia para conectarme a las bases de datos que me hice.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Última edición por bookmaster; 19/07/2014 a las 02:10
  #3 (permalink)  
Antiguo 19/07/2014, 15:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Guardar rutas en bd

Cita:
Iniciado por bookmaster Ver Mensaje
Se supone que en el campo img1,img2... ya le estas metiendo la ruta a la imagen en tipo texto.

Es como si metes el nombre, tan solo tienes que indicarlo, y en el INSERT le metes el valor de $Ruta.
Código PHP:
$Ruta "imagenes_avisos/".$nombreArrat[$i]; 
No se si estarás usando una clase ya preestablecida o es una propia pero te recomiendo que la hagas con esta estructura, así no tendrías problemas para meter los valores que se "repitan".
Código PHP:
$DB->Insertar('NombreTabla');
$DB->Campo('NombreCampo'$Valor);
$DB->Campo('NombreCampo'$Valor);
$ID $DB->Ejecuta(); 
Este fragmento de código es de una clase mía propia para conectarme a las bases de datos que me hice.
Hola bookmaster , gracias por tu respuesta, mira implemente lo que me coentaste, modifique el form, inclui un campo para multiples subidas, sube super las multiples imagenes, pero no me inserta nada en la bd, tego l codigo asi:
Código PHP:
<?php
// Conexion
require ('crud/conexionDB.php');
//Funcion Insertar
require ('crud/funcionesCrud.php');


if(isset(
$_POST["enviar"]))
{
    
    if(isset(
$_FILES['fotosavisos']))
    {
        
        
//Subida de Archivos
        
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
        {     
//Nombre del Arreglo generado con el input fotosavisos
            
$nombres=$_FILES['fotosavisos']['name'][$key];
            
//Nombre Temporal de la Imagen (Generada por el servidor)
            
$nombresTemporal=$_FILES['fotosavisos']['tmp_name'][$key];
                    
//Tamaño de la Imagen
            
$tamaño=$_FILES['fotosavisos']['size'][$key];
                    
//Tipo de Imagen
            
$tipo=$_FILES['fotosavisos']['type'][$key];
            
            
//Ruta en Servidor
            
$rutaFinal="imagenes_avisos/".$nombres;
            
            
$titulo=$_POST['titulo_aviso'];
            
            
            
//Movemos los Archivos al Servidor
              
move_uploaded_file($nombresTemporal,$rutaFinal);
              
/*echo "subidos";*/
    
}//foreach    
        

        //Insercion a la Base de Datos
        
$modelo= new Operaciones();
        
$modelo->insertInto='aviso_imagen';
        
$modelo->insertColumns='titulo, img_1, img_2';
        
$modelo->insertValues="'titulo',$titulo";
        
$modelo->insertValues="'img_1',$rutaFinal";
        
$modelo->insertValues="'img_2',$rutaFinal";
        
$modelo->Insertar();
        
$mensaje$modelo->mensaje;
        
    
}
//submit fotos

}//envio form


?>
<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">
        <!--<meta name="viewport" content="width=device-width, initial-scale=1">-->

        <link rel="stylesheet" href="css/normalize.min.css">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/main.css">

        <script src="js/vendor/modernizr-2.6.2.min.js"></script>
       
    </head>
    <body>
        
        <!--Contenedor Principal-->
        <div class="container">
            <h1>Aviso con Fotografia</h1>
            
            
            <div id="buscador">
            
                <form method="POST" action="" enctype="multipart/form-data" > <!--enctype="multipart/form-data"-->
                    <label for="titulo">Titulo Aviso:</label>
                    <input type="text" name="titulo_aviso" placeholder="titulo"/><br>
                    
                    <label>Seleccione Imagen Principal:</label>
                    <input name="fotosavisos[]" type="file" multiple="multiple" >
                    <!--<input type="file" name="fotosavisos[]"  />
                    
                    <input type="file" name="fotosavisos[]"  />
                    
                    <input type="file" name="fotosavisos[]"  />-->
                    
                    <td><input type="submit"  name="enviar" value="Upload" /></td>
                </form>
            </div>
        
        
            
        </div><!--Contenedor Principal-->

        <!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>-->
        <script src="js/vendor/jquery-1.11.0.min.js"></script>
        <script src="js/vendor/bootstrap.js"></script>
        <script src="js/plugins.js"></script>
        <script src="js/main.js"></script>

    </body>
</html>
lo que no me queda del todo claro, es porque la variable $rutafinal no me responde en el insert, o tal vez no deberia recorrerlo con el foreach?

Saludos
  #4 (permalink)  
Antiguo 19/07/2014, 16:11
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Guardar rutas en bd

Prueba de la siguiente manera:

Cambia:
Código PHP:
//Ruta en Servidor
$rutaFinal="imagenes_avisos/".$nombres
Por:
Código PHP:
//Ruta en Servidor
$rutaFinal[]="imagenes_avisos/".$nombres
Y ahora cambia.
Código PHP:
$modelo->insertValues="'titulo',$titulo";
$modelo->insertValues="'img_1',$rutaFinal";
$modelo->insertValues="'img_2',$rutaFinal"
Por
Código PHP:
$modelo->insertValues="'titulo',$titulo";
$Contador 0;
foreach(
$rutaFinal as $Ruta){
$Contador++;
        
$modelo->insertValues="'img_'.$Contador, $Ruta"

Con esto lo que estás haciendo es que guardas las rutas en un array cada vez que subes una, y después recorres ese array agregando los campos según las rutas de las imágenes.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #5 (permalink)  
Antiguo 19/07/2014, 16:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Guardar rutas en bd

nuevamente gracias por tu tiempo bookmaster, mira, hice los cambios que me comentaste y me arroja el siguiente error:
Warning: move_uploaded_file() expects parameter 2 to be string, array given in C:\xampp\htdocs\sist_avisos\aviso_imagen.php on line 40, esto en la parte de mover las magenes al directorio
  #6 (permalink)  
Antiguo 19/07/2014, 17:03
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Guardar rutas en bd

Eso es porque le estas tratando de meter el array de $rutaFinal, en vez del valor que tendría, eso tienes que corregirlo.

Por ejemplo
Cambiar
Código PHP:
//Ruta en Servidor
$rutaFinal[]="imagenes_avisos/".$nombres
por
Código PHP:
$rutaarchivo "imagenes_avisos/".$nombres;
$rutaFinal[] = $rutaarchivo
y
Código PHP:
//Movemos los Archivos al Servidor
move_uploaded_file($nombresTemporal,$rutaFinal); 
por
Código PHP:
 //Movemos los Archivos al Servidor
 
move_uploaded_file($nombresTemporal,$rutaarchivo); 
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #7 (permalink)  
Antiguo 19/07/2014, 17:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Guardar rutas en bd

claro, tiene logica, como iba a sbr el array que contnido tiene, sabia que me estaba saltando algo, vere si me funciona...
  #8 (permalink)  
Antiguo 19/07/2014, 17:41
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Guardar rutas en bd

Cita:
Iniciado por bookmaster Ver Mensaje
Eso es porque le estas tratando de meter el array de $rutaFinal, en vez del valor que tendría, eso tienes que corregirlo.

Por ejemplo
Cambiar
Código PHP:
//Ruta en Servidor
$rutaFinal[]="imagenes_avisos/".$nombres
por
Código PHP:
$rutaarchivo "imagenes_avisos/".$nombres;
$rutaFinal[] = $rutaarchivo
y
Código PHP:
//Movemos los Archivos al Servidor
move_uploaded_file($nombresTemporal,$rutaFinal); 
por
Código PHP:
 //Movemos los Archivos al Servidor
 
move_uploaded_file($nombresTemporal,$rutaarchivo); 
la subida ahora perfecto, pero no me trabaja el insert...mi llamado al function insertar ( $modelo->Insertar();) lo inclui dentro y fuera del foreach pero tampoco
  #9 (permalink)  
Antiguo 19/07/2014, 17:46
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Guardar rutas en bd

¿As probado a ver que consulta te forma la clase que estas usando para las bases de datos?
A ver si te muestra bien los valores.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #10 (permalink)  
Antiguo 19/07/2014, 19:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Guardar rutas en bd

Cita:
Iniciado por bookmaster Ver Mensaje
¿As probado a ver que consulta te forma la clase que estas usando para las bases de datos?
A ver si te muestra bien los valores.
revise la consulta, y funciona, inserta el titulo sin problema, de echo primero pude insertar bien el titulo e img_1, img_2, el problema era que me guardaba el mismo valor en ambas....
  #11 (permalink)  
Antiguo 21/07/2014, 02:32
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Guardar rutas en bd

Al final no pusiste como se a quedado el final el código ni como se queda la consulta. Para poder descartar que hayas echo bien la modificación en la clase de la base.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #12 (permalink)  
Antiguo 21/07/2014, 02:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar rutas en bd

Este tema está duplicado en: http://www.forosdelweb.com/f18/recor...lores-1104745/
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: imagenes, pdo
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:52.