Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2006, 11:56
crossover
 
Fecha de Ingreso: mayo-2006
Mensajes: 13
Antigüedad: 18 años, 6 meses
Puntos: 0
Cita:
Iniciado por turco_7
suponiendo que si el usuario indica el numero 1, y despues le genera un form donde carga solamente una partida ..

al hacer el submit tendras estos datos a procesar ...

$partida1='1';
$descripcion1='articulo1';
$cantidad1='641';
$unidad1='unidad1';

Si quisieras guardar estos datos en tu DB .. harias insert .. si ?

si el usuario ingreso 2 haras dos insert .. osea el problema aca no me parece que sea con PHP sino con la estructura que definiste en tu DB ..

Si definiste bien la estructura y tenes muy claro que vas a insertar tantos registros como valor del numero que haya ingresado el usuario entonces, el problema seria procesar los datos ..

ya que tenes $partida1 $partida2 $partidan etc ...

seria bueno que mandes en un campo oculto la cantidad de partidas que vas a procesar, asi sabras cuando deterner el bucle y cuando dejaras de insertar datos en la DB ... osea que despues del primer for pondras un

echo "<input type='hidden' name='cantidad' value='$cantidad'>";
cuando quieras insertar tus datos en la DB tenes la cantidad de veces que vas a hacer un insert ... me explico ?

saludos

El numero de items está guardado en una variable $t_items

el for es precisamente lo que no he podido estructurar



for ($i=1;$i<=$t_items;$i++){

if (empty($descripcionX)){
unset($partidaX,$descripcionX,$cantidadX,$unidadX) ;
}
else{
inserta_detalle($dbh,$partidaX,$descripcionX,$cant idadX,$unidadX);
}
}

ahora pues mi pregunta es como hacer para ir variando el nombre de las variables a enviar para que tome los siguientes valores y no repita $t_items veces los mismos valores a insertar. o quiza este mal desde el planteamiento en la forma de recibir el post?

la funcion inserta detalle

function inserta_detalle($dbh1,$v2_1, $v2_2, $v2_3,$v2_4){
$sql= 'INSERT into BS_REQ_DET (CVE_REQ, NUM_PARTIDA, DESCRIPCION, CANTIDAD, UNIDAD)values(:val2_1, :val2_2, :val2_3,:val2_4)';
$stmt2= OCIParse($dbh1, $sql);
if (!$stmt) {
//print "Error de busqueda en la base de datos!!";
}
else {
oci_bind_by_name($stmt2, ':val2_1', $v2_1);
oci_bind_by_name($stmt2, ':val2_2', $v2_2);
oci_bind_by_name($stmt2, ':val2_3', $v2_3);
oci_bind_by_name($stmt2, ':val2_4', $v2_4);
// oci_bind_by_name($stmt2, ':val2_5', $v2_5);
// oci_bind_by_name($stmt2, ':val2_6', $v2_6);

OCIExecute($stmt2);
if($stmt2){
//echo 'insercion realizada';
}
}

}

por cierto gracias por contestar