Estoy haciendo una aplicación que envia un formulario con dos inputs de tipo text y dos de tipo file y almacenar la información en una BDD. El problema es que al almacenarlo me multiplica los datos en mi base. Lo que quiero es que me almacene las dos imagenes que generen en el input file y los text.
La estructura de mi base de datos es la siguiente:
Tabla Productos
--------------------
Id_producto
nombre_producto
clave_producto
Tabla Imagenes
---------------------
id_imagen
nombre_imagen
id_producto
Almacenara los input text en la tabla productos y los input file en la tabla imagenes, y se relacionaran las imagenes por medio de el id del producto.
Tengo el siguiente codigo....
El form que envia los datos por post:
Código HTML:
<form action="upload.php" method="post" enctype="multipart/form-data"> <label>Nombre Producto:</label><input type="text"> <label>Clave Producto:</label><input type="text"> <label>Imagen 1: <input type="file" name="archivo[]"> <label>Imagen 2: <input type="file" name="archivo[]"> <input type=""
Código PHP:
$ruta="imagenes_productos/";
//Recibe por post los inputs
$nombre_producto = $_POST['nombre_producto'];
$cve_producto = $_POST['cve_producto'];
//Inserta los input text en la tabla productos
$sql = "INSERT INTO producto (id_producto, nombre_producto, cve_producto) VALUES ('','$nombre_producto','$cve_producto')";
echo $sql;
$consulta = mysql_query($sql,$conn) or die("Valio madre >_<...1");
$res = mysql_query($sql);
//Guarda el id del ultimo registro generado con el insert
$id_producto=mysql_insert_id();
echo "ultimo id: ".$id_producto;
//Bucle para leer los inputs de tipo file
for($i=0; $i <= count($_FILES["archivo"]); $i++){
$nombre_fichero=$_FILES["archivo"]["name"][$i];
$nombre_temporal_que_le_ha_dado_php=$_FILES["archivo"]["tmp_name"][$i];
//mueve el archivo a la ruta especificada
move_uploaded_file($nombre_temporal_que_le_ha_dado_php,$ruta.$nombre_fichero);
//permisos
chmod($ruta.$nombre_fichero,0777);
Realiza el insert en la tabla imagenes con el id del producto registrado en query anterior
$sql2 = "INSERT INTO imagenes (id_imagen, nombre_imagen, producto_id_producto) VALUES ('','$nombre_fichero','$id_producto')";
$res2=mysql_query($sql2) or die("Valio madre >_<...2");
if($res2){
echo "Subido Correcto";
}
else{
echo $_FILES["archivo"]["name"][$i]." Se subió mal";
}
}
exit;
Tabla Productos
---------------------------
id_producto nombre_prod desc_prod
1 Libreta Cuadros
2 Libreta Cuadros
Tabla Imagenes
---------------------------
id_imagen nombre_imagen id_producto
1 imagen1.jpg 2
2 imagen2.jpg 2
3 null null
4 null null
5 null null
6 null null
No se a que se deba esto pero se supone que debería ser asi:
Tabla Productos
---------------------------
id_producto nombre_prod desc_prod
1 Libreta Cuadros
Tabla Imagenes
---------------------------
id_imagen nombre_imagen id_producto
1 imagen1.jpg 1
2 imagen2.jpg 1
Espero puedan apoyarme, desde ya gracias.