Foros del Web » Programando para Internet » PHP »

bucle for no correcto

Estas en el tema de bucle for no correcto en el foro de PHP en Foros del Web. Hola alguien me podria ayudar porque me guarda en mi db el titulo repetido por cada archivo subido tendria que ser que se graben tres ...
  #1 (permalink)  
Antiguo 15/05/2011, 07:51
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
bucle for no correcto

Hola alguien me podria ayudar porque me guarda en mi db el titulo repetido por cada archivo subido tendria que ser que se graben tres archivos que se envian a traves de un formulario con un solo titulo.

codigo :

Código PHP:
Ver original
  1. <?php
  2.     $numFiles = count($_FILES['archivo']['tmp_name']);
  3.     for($i=0; $i<$numFiles; $i++){
  4.         if ($_FILES['archivo']['name'][$i]){
  5. if (move_uploaded_file($_FILES['archivo']['tmp_name'][$i],'imagenes_originales/'.$_FILES["archivo"]["name"][$i])) {
  6.   }else{
  7.     echo 'no se subieron los archivos';
  8.     }
  9.    $ssql="INSERT INTO mytable(titulo,nombre_archivos)values ('".$_POST['titulo']."','".$_FILES['archivo']['name'][$i]."')";
  10.    $conexion=mysql_connect("localhost","root","");
  11.          mysql_select_db("basedatos",$conexion);
  12.       if(mysql_query($ssql,$conexion)){
  13.         echo 'sus archivos fueron grabado con exito';
  14.          }else{
  15.             echo 'No se grabaron las imagenes insertadas!!';
  16.          }
  17.          mysql_close($conexion);
  18.         }
  19.   }
  20.  ?>
  #2 (permalink)  
Antiguo 15/05/2011, 08:01
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: bucle for no correcto

vos queres que cada archivo tenga su propio titulo?
  #3 (permalink)  
Antiguo 15/05/2011, 08:05
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: bucle for no correcto

si pero mejor dicho cada tres archivos un titulo ya que a traves de un formulario envio un titulo con tres archivos me podrias ayudar
  #4 (permalink)  
Antiguo 15/05/2011, 08:18
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: bucle for no correcto

esta bien pero vos tenes una relacion de uno a uno,
tenes mal el modelo, pero no importa

simplemente tenes que hacer un

if($i==0){
$ssql="INSERT INTO mytable(titulo,nombre_archivos)values ('".$_POST['titulo']."','".$_FILES['archivo']['name'][$i]."')";
}else{
$ssql="INSERT INTO mytable(titulo,nombre_archivos)values ('','".$_FILES['archivo']['name'][$i]."')";
}
  #5 (permalink)  
Antiguo 15/05/2011, 08:24
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: bucle for no correcto

Gracias Patriarca pero no queda muy bien como me comentaste que hice mal el modelo me podrias decir como tendria que hacerlo?

yo realmente quiero grabar en mi db los datos a traves de un formulario esos datos son titulo, comentario,archivos(en este caso tres).

luego quiero realizar un enlace hacia el comentario y los archivos correspondiente a ese titulo, este es el modelo que quiero realizar alguien me podria ayudar un poco?

Última edición por azaz; 15/05/2011 a las 09:04
  #6 (permalink)  
Antiguo 15/05/2011, 10:04
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: bucle for no correcto

Claro por tenes el campo titulo que va a quedar vacio por cada 3 archivos subidos, no tiene sentido.

para tener un titulo y hacer el enlace a los 3 o N archivos rendrias que normalizar tu base de datos.
tendrias que hacer dos tablas:
una con el titulo
y otra para las imagenes, recorda que pueden ser N archivos

una solucion facil es cambiar esa tabla a
mytable(titulo ,nombre_archivo1, nombre_archivo2, nombre_archivo3)

no te parece mas facil???
  #7 (permalink)  
Antiguo 15/05/2011, 10:16
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: bucle for no correcto

Gracias por contestar patriarka la verdad que si me parece mas facil ya me di cuenta de lo de crear dos tablas lo que pasa que lo hice con la idea siguiente

una tabla con un campo id_contador como primary autoincrement otro titulo, otro texto.

una segunda tabla como id_imagen primary autoincrement, otro campo id_contador, otro nombre_imagen

y entonces asin las podria relacionar con el id_contador lo que pasa que realmente no se crear el bucle que haga que el id_contador sea el mismo que la tabla primero me entendistes?

o crees que debo hacerlo a tu forma que es mejor
  #8 (permalink)  
Antiguo 15/05/2011, 10:54
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: bucle for no correcto

No es como a vos te quede mejor,
como son pocos datos quizas te combiene hacer lo q te dije
agregar los campos imagen1 2 3 etc
lo podes hacer asi:

Código PHP:
Ver original
  1. <?php
  2.         $numFiles = count($_FILES['archivo']['tmp_name']);
  3.         for($i=0; $i<$numFiles; $i++){
  4.             if ($_FILES['archivo']['name'][$i]){
  5.     if (move_uploaded_file($_FILES['archivo']['tmp_name'][$i],'imagenes_originales/'.$_FILES["archivo"]["name"][$i])) {
  6.       }else{
  7.         echo 'no se subieron los archivos';
  8.         }
  9.        
  10.             }
  11.       }
  12. //LO UNICO QUE HACEMOS ES ESTO
  13. $ssql="INSERT INTO mytable(titulo,nombre_archivo_1,nombre_archivo_2,nombre_archivo_3)values ('".$_POST['titulo']."','".$_FILES['archivo']['name'][1]."' ,'".$_FILES['archivo']['name'][2]."' ,'".$_FILES['archivo']['name'][3]."')";
  14.        $conexion=mysql_connect("localhost","root","");
  15.              mysql_select_db("basedatos",$conexion);
  16.           if(mysql_query($ssql,$conexion)){
  17.             echo 'sus archivos fueron grabado con exito';
  18.              }else{
  19.                 echo 'No se grabaron las imagenes insertadas!!';
  20.              }
  21.              mysql_close($conexion);
  22.      ?>

SABIENDO QUE VAS A GUARDAR 3 IMAGENES
$_FILES['archivo']['name'][1]
VA INCREENTADO EN UNO LA POSICION, QUIZAS DEBA COMENZAR CON 0, DEPENDE COMO TE LLEGAN LOS DATOS
  #9 (permalink)  
Antiguo 15/05/2011, 10:58
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: bucle for no correcto

gracias amigo lo hice como dijistes pero eso si todo en una misma tabla una cosa como puedo hacer para saber hacer para encontrar un error ya que no me inserta en la tabla no se porque
  #10 (permalink)  
Antiguo 15/05/2011, 11:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: bucle for no correcto

dos cosas,

echo '<pre>';
var_dump($_REQUEST);
echo '</pre>';

echo $ssql;

mostrame los dos resultados

Etiquetas: bucle, correcto
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 14:06.