Foros del Web » Programando para Internet » PHP »

Problema al Ingresar Varios Reg. a mi BD. a la vez

Estas en el tema de Problema al Ingresar Varios Reg. a mi BD. a la vez en el foro de PHP en Foros del Web. Que tal amigos, bueno, estoy realizando un catalogo con base de datos, ingresando varios registros a la vez dependiendo del parametro, pero cuando inserto los ...
  #1 (permalink)  
Antiguo 03/10/2005, 07:33
 
Fecha de Ingreso: agosto-2004
Mensajes: 258
Antigüedad: 13 años, 4 meses
Puntos: 0
Exclamación Problema al Ingresar Varios Reg. a mi BD. a la vez

Que tal amigos, bueno, estoy realizando un catalogo con base de datos, ingresando varios registros a la vez dependiendo del parametro, pero cuando inserto los registros automaticamente, solo me inserta el primero, y el segundo se pierde, el valor $Cod_Cat[$d] es el q se me pierde a la hora de insertar el segundo registro, y no doy con el error, espero me puedan ayudar, aca les dejo el codigo.

Código PHP:
<?
require("mco_funciones.php");
$db_conexionconectar();
$cat=mysql_query("select * from categorias")or die("no se selecciono ninguna");
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../estilos/mco1.css"  />
<script language="javascript">
function AbrirSinScroll( url ) 
{
  web = url
  alto = 306
  ancho = 530
  izq = (screen.width - ancho) / 2
  arr = ((screen.height - alto) / 2) - 15
  popupWin = window.open(web, "_blank", "scroll='yes',width=" + ancho + ",height=" + alto + ",top=" + arr + ",left=" + izq)
}
</script>
</head>

<body class=fondo1>

<form action="" method="post" enctype="multipart/form-data" name="form1">
<fieldset style="width: 280; height: 41; padding: 10">
Categorias<br>

<select size="1" name="Cod_Cat">
    <option selected value="Seleccionar">Seleccionar</option>
        <?
            
            
While ($row=mysql_fetch_array($cat))  
            { 
                echo 
"<option value='$row[0]'>".$row[1]."</option>\n"
            }
        
?>
</select><a href="javascript:AbrirSinScroll('crear_categoria.php?crear_cat=1')">Nueva Categoria</a><br>
Cantidad de Imagenes a Subir<br>
<select size="1" name="cantidad" id="cantidad">
    <option value="">Seleccionar</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>
<input type="submit" name="Cargar" value="Cargar">
</fieldset><p>

<?
    
if(isset($_POST['Cargar']))
    { 
        echo 
"<fieldset style=\"width: 280; height: 41; padding: 10\">";
        echo 
"Elegir Imágenes para Subir<br>";
        echo 
"<hr>"
            for(
$i=1;$i<=$_POST['cantidad'];++$i)
            { 
                echo 
"Nombre del Producto<br><input type=\"text\" name=\"Nom_Prod[]\" size=\"26\"><br>";
                echo 
"Imagen a Subir<br><input type=\"file\" name=\"archivo[]\" size=\"26\"><br>";
                echo 
"Descripcion de la Imagen<br><textarea rows=\"2\" name=\"Desc_Prod[]\" cols=\"32\"></textarea><br>";
            }
        echo 
"<hr>";
        echo 
"<input type=\"submit\" name=\"Publicar\" value=\"Publicar\">"
        echo 
"<input type=\"hidden\" name=\"cant1\" value=\"$i\">";
        echo 
"<input type=\"hidden\" name=\"Cod_Cat\" value=\"$Cod_Cat\">";
        echo 
"</fieldset>";
    } 
     
    if(isset(
$_POST['Publicar']))
    { 
        
$cantidad2 =count($_FILES["archivo"]); 
        for (
$j=0;$j<=$_POST['cant1'];$j++)
        { 
                
$archivo $_FILES["archivo"]["tmp_name"][$j]; 
                
$tamanio $_FILES["archivo"]["size"][$j]; 
                
$tipo    $_FILES["archivo"]["type"][$j]; 
                
$nombre  $_FILES["archivo"]["name"][$j]; 

             
$x=$j;
             
$d=$j;
             do{ 
             
$x++;
                if( 
$archivo != "" )
                { 
                           
$fp fopen($archivo"rb"); 
                           
$contenido fread($fp$tamanio); 
                           
$contenido addslashes($contenido);
                           
$ubicacion sprintf ("../catalogo/img/%s"$nombre);//ubicacion
                           
move_uploaded_file($archivo$ubicacion);
                           
fclose($fp);
                           
image_gd($nombre);
                           
//AQUI  INSERTE EN LA BASE DE DATOS 
                           
$consulta="INSERT INTO `productos` VALUES ('', '$Nom_Prod[$d]', '$nombre', '$Desc_Prod[$d]', '$nombre', '$Cod_Cat[$d]')";
                           
mysql_query($consulta)or die("<br>no se inserto $consulta");
                           echo 
"<br>Se Registro Correctamente el PRoducto en nuestra BD, el script es: $consulta<br>";
                           echo 
"El Producto es : $Nom_Prod[$d], y su imagen con el nombre de $nombre<br>";
                           echo 
"la Desc de este producto es : $Desc_Prod[$d]<br>";
                           echo 
"Esta fue subida a la Categoria $Cod_Cat, en la ruta : $ubicacion<br>";
                 } 
                
$d++;
               }while(
$x<$j);
        } 
   }
 
?>        


</form>

</body>

</html>
Coo puedem ver se pierde el valor, pero si le ponen un valor fijo a "Cod_Cat[$d]" es decir lo reemplazan por 2 digamos,se ingresa normal.
  #2 (permalink)  
Antiguo 03/10/2005, 08:53
 
Fecha de Ingreso: septiembre-2005
Mensajes: 101
Antigüedad: 12 años, 2 meses
Puntos: 0
puede ser que genere un numero que no reconoce la base de datos :S

aproposito usa siempre para abrir codigo esto <?php y no esto <?

no es incorrecto pero a veces genera problemas

salu2
  #3 (permalink)  
Antiguo 03/10/2005, 09:35
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 12 años, 5 meses
Puntos: 4
que tal saludos:

bueno a simple vista no se ve nada anormal (segun yo):

pero me di cuenta de esto:
Código:
             $x=$j; 
             $d=$j; 
             do{ 
             $x++;
y luego para finalizar el while la condiciòn que tienes es esta:
Código:
..}while($x<$j);
el datalle es que j=0, y x toma el valor de j, pero a x la incrementas antes de que termine el primer ciclo de j, es decir, a x la incrementas a 1 cuando j vale aùn 0, y en la condición dices que va a terminar cuando x sea menor que j. tal vez si cambias la condicion, a que termine cuando hayan pasado todos los productos, pruebala y luego nos comentas.

espero me hayas entendido y no enredado mas, es mi humilde opinion. saludos y hasta pronto
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
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 15:27.