| |||
Frm de producto(nuevo y edicion) + upload multiple FOTOS Tengo el problema de no poder realizar un formulario correctamente, en algun paso me estanco y por eso quiero pedir ayuda, claro esta que al hacerlo para cargar datos de campo de texto, para precio, descripcion , etc es facil. Me surge el problema para hacer que cargue 4 o mas fotos por producto, y despues poder editar estas fotos tambien o eliminarlas. |
| |||
Respuesta: Frm de producto(nuevo y edicion) + upload multiple FOTOS En el atributo name de cada input tipo file puedes poner un array. <input type="file" name="imagen[]" > Recuperda poner bien el encoding del formulario. Luego recorres el vector imagen normalmente. |
| |||
Respuesta: Frm de producto(nuevo y edicion) + upload multiple FOTOS Cita: Veamos compañero. te muestro que me paso hasta donde hice como vos comentas. aca esta el campo donde paso fotos, tiene una funcion javascript que anida un input file al seleccionar subir otra foto <input type="file" name="archivos[]" style="width: 215px" /><br /> </div></dd> <dt><a href="#" onClick="addCampo()"><span style="font-size:small">Subir otra imagen</span></a></dt> luego mustro como tomo los datos, hago el bucle, traigo los datos, agrego variables al array vector, y tambien inserto en una carpeta las fotos, tengo una tabla aparte para las fotos y cada foto tiene su idproducto <?php //analizar form, agregar producto if(isset($_POST['act'])){ $nombre__prod = mysql_real_escape_string($_POST['N__prod']); $precio__prod = mysql_real_escape_string($_POST['P__prod']); $detalles__prod = mysql_real_escape_string($_POST['D__prod']); $id_ct = mysql_real_escape_string($_POST['select1']); $idsubcat = $_POST['select2']; $img =$_FILES["archivos"]; if (isset ($img)) { //de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo //obtenemos la cantidad de elementos que tiene el arreglo archivos $tot = count($_FILES["archivos"]["name"]); for ($i = 0; $i < $tot; $i++){ $name = $_FILES["archivos"]["name"][0]; $name1 = $_FILES["archivos"]["name"][1]; $name2 = $_FILES["archivos"]["name"][2]; $name3 = $_FILES["archivos"]["name"][3]; move_uploaded_file($_FILES['archivos']['tmp_name'][0],"../img_/$name"); move_uploaded_file($_FILES['archivos']['tmp_name'][1],"../img_/$name1"); move_uploaded_file($_FILES['archivos']['tmp_name'][2],"../img_/$name2"); move_uploaded_file($_FILES['archivos']['tmp_name'][3],"../img_/$name3"); } } //vemos si el nombre de producto es identico a otro producto del sistema $sql = mysql_query("SELECT id FROM productos WHERE nombreProd = '$nombre__prod' LIMIT 1 "); $P__coincidencia = mysql_num_rows($sql); if($P__coincidencia > 0){ echo 'Disculpe, trato de crear un producto que ya existe ,<a href="inventorio.php">click aca</a>'; exit(); } $sql = mysql_query( "INSERT INTO productos(nombreProd,precio,detalles,dia_added,id_ ct,subcategoria,foto1,foto2,foto3,foto4) VALUES('$nombre__prod','$precio__prod','$detalles_ _prod',now(),$id_ct,'$idsubcat')") or die(mysql_error()); $pid = mysql_insert_id(); if(isset($name)){ $sql = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto) VALUES('$name','$pid')") or die(mysql_error());} if(isset($name1)){ $sql_1 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto) VALUES('$name1','$pid')") or die(mysql_error());} if(isset($name2)){ $sql_2 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto) VALUES('$name2','$pid')") or die(mysql_error());} if(isset($name3)){ $sql_3 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto) VALUES('$name3','$pid')") or die(mysql_error());} //$pid = mysql_insert_id(); //imagen //$nw__img = "$pid.jpg"; //move_uploaded_file($_FILES['fileField']['tmp_name'],"../eCommIMG/$nw__img"); header("location: inventorio.php"); exit(); } ?> hasta aca va funcionando como quiero. Luego en editar pasa lo siguiente Esta primera parte es lo que muestro en el form editar, traigo las fotos de los productos con sus id, nombre de este id que es la ruta a la foto y un id del producto asociado. esto va bien, por que lo utilizo para eliminar con un unlink la foto de la carpeta, y eliminar el id de la tabla fotosxproducto para eliminar tambien de la base de datos. <?php $sql1 = mysql_query("SELECT * FROM fotoxproducto where idproducto='$elid' "); $numrows = mysql_num_rows($sql1); while($row_foto = mysql_fetch_array($sql1)){ $idfotito = $row_foto["idf"]; $namefoto = $row_foto["ruta_foto"]; ?> <td> <label> <img src="../img_/<?php echo $namefoto; ?>" width="40" heigth="52" border="1"/> <a href="inventorio_edit.php?idfoto=<?php echo $idfotito ?>&rutafoto=<?php echo $namefoto; ?>&pid=<?php echo $elid; ?>&act=eliminar">Eliminar</a> </label> </td> y el codigo que utilizo es este: <?php if(isset($_GET['idfoto'])){ //elimino iten desde sistema y desde imagen // elimino desde bd $act =$_GET['act']; $idfoto =$_GET['idfoto']; $ruta_foto =$_GET['rutafoto']; $img =$_FILES["upload"]; if ($act == "eliminar") { $sql = mysql_query("DELETE FROM fotoxproducto where idf='$idfoto' ")or die(mysql_error()); $ruta_p_foto = ("../img_/$ruta_foto"); if(file_exists($ruta_p_foto)){ unlink($ruta_p_foto);} }else{ //$sql = mysql_query("UPDATE fotoxproducto SET ruta_foto='' where idf='$idfoto'")or die(mysql_error()); //quitar imagen de servidor } } ?> en la edicion es donde no puedo hacer la logica. un abrazo y agradezco toda ayuda. |
Etiquetas: |