Foros del Web » Programando para Internet » PHP »

Ayuda para modificar este codigo

Estas en el tema de Ayuda para modificar este codigo en el foro de PHP en Foros del Web. Hola veran, he encontrado este codigo aqui en el foro, y me ha servido mucho, pero la cuestion es que ahora necesito que este codigo ...
  #1 (permalink)  
Antiguo 02/12/2008, 11:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 1
Ayuda para modificar este codigo

Hola veran, he encontrado este codigo aqui en el foro, y me ha servido mucho, pero la cuestion es que ahora necesito que este codigo me permita a mi insertar 3 array a una tabla en mysql, pero a el mismo tiempo, es decir en una sola fila o mejor dicho que me permita crear un solo registro. Ya que el codigo que les muestro me permite hacerlo pero solo para dos y ahora necesito 3 y la verdad esta un poco complejo de modificarlo.
Código PHP:
$i=0;
foreach(
$_POST['valores'] as $datos)
{
$arrUnd[$i]=$datos;
$i++;
}
$i=0;
foreach(
$_POST['id'] as $id)
{
if (
$id <> "" && $arrUnd[$i]<>"")
{
$db="costos";    
$tabla="materiales_actividad";
$conexion=mysql_connect("localhost","root") or die (mysql_error());
$db=mysql_select_db($db,$conexion) or die (mysql_error());
$sql="select * from $tabla ";
$result=mysql_query($sql,$conexion);
$sql "insert into materiales_actividad (id_material,cantidad) values ('".$id."', '".$arrUnd[$i]."')";
$result mysql_query("$sql") or die(mysql_error());
}
$i++;

Desde ya agradesco su ayuda.
  #2 (permalink)  
Antiguo 02/12/2008, 12:27
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Ayuda para modificar este codigo

Pero se supone que se realiza la consulta dependiendo del numero de elementos que tenga el arreglo $_POST['id'].. si tienes solamente 2 elementos.. solo generara 2 consultas de insert..

Quizas puedas explicarte mejor..
  #3 (permalink)  
Antiguo 02/12/2008, 12:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda para modificar este codigo

Pues la verdad no te he entendido muy bien, pero dejame explicarme mejor. La cuestion es que este codigo como tu ves me permite por medio de dos array creados en un formulario anterior, insertarlos a el mismo tiempo en una tabla y asi me generan un solo registro, pero el problema radica en que ahora en el formulario de captura necesito insertar un tercer array, el cual me permita ahora hacer la misma incersion en una sola fila los 3 campos, pero el problema es que el codigo que te mostre solamente es para 2 arrays y no se como modificarlo para poder ahora insertar los 3 array en un solo registro.

Antes yo insertaba solamente cod_materiales y cantidad. Pero ahora necesito insertar estos 3 campos cod_materiales,cantidad e id_factura. Para asi sea un solo registro.

O quiza una manera mas facil de como explicar esto es: Que necesito un codigo que me permita a mi insertar 3 arrays en una tabla, pero a el mismo tiempo y en el mismo registro, y quisiera saber si en ese codigo mostrado se puede realizar dicha accion o si conocen otra forma de poder realizarlo.

Bueno desde ya gracias nuevamente, y espero me hayas entendido.
  #4 (permalink)  
Antiguo 02/12/2008, 13:05
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Ayuda para modificar este codigo

Podrias plantear un ejemplo de que tipo de contenido tendrian tus arreglos.. y como deberia de quedar el query para la consulta ?? porque se torna un poco dificil de comprender lo que necesitas sin ver algun ejemplo..

Código PHP:
$_POST['valores'] = array(...); // que valores van ahi dentro

$_POST['id'] = array(...);  // que valores van ahi dentro

$_POST['otro array que no se cual es'] = array(...);  // que valores van ahi dentro

$sql "insert....." 
ahora si el tercer arreglo sale de la consulta que tienes de "select * from $tabla" solo haria falta que pusieras el ejemplo de como necesitas generar la consulta insert..

espero darme a entender
  #5 (permalink)  
Antiguo 02/12/2008, 13:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda para modificar este codigo

Pues este es el codigo de mi formulario:
Código PHP:
<?     echo "<form action=hoja2.php method=post>";?>
<? 
$db
="costos";
$tabla="materiales";
$conexion=mysql_connect("localhost","root") or die (mysql_error());
$db=mysql_select_db($db,$conexion) or die (mysql_error());
$sql="select * from $tabla ";
$result=mysql_query($sql,$conexion);
echo 
"<left><table  class='ewTable'>";
echo 
"<tr class='ewTableHeader'><th><font color=white>Codigo</th>";
echo 
"<th><font color=white>Material</th>";
echo 
"<th><font color=white>Unidad</th>";
echo 
"<th><font color=white>Precio</th>";
echo 
"<th><font color=white>Cantidad</th>";
while(
$row mysql_fetch_array($result))
{
echo 
'<tr><td><font color=black>'.$row["id_material"].'</td>';
echo 
'<td><font color=black>'.$row["descripcion"].'</td>';
echo 
'<td><font color=black>'.$row["unidad"].'</td>';
echo 
'<td><font color=black>$'.$row["precio"].'</td>';
//Y as&iacute; listas tus datos de la consulta
// Y de ultimo creas el text
echo "<td><input type ='text' size='5' maxlength='4' name='valores[]' value ='0'</td>";
echo 
"<input type ='hidden' name='id[]' value ='".$row['id_material']."'";
echo 
"</tr>";


echo 
"</table>" ;
?>
Y este es el codigo de la pagina que procesa los arrays y los incerta en la tabla:
Código PHP:
$i=0;
foreach(
$_POST['valores'] as $datos)
{
$arrUnd[$i]=$datos;
$i++;
}
$i=0;
foreach(
$_POST['id'] as $id)
{
if (
$id <> "" && $arrUnd[$i]<>"")
{
$db="costos";    
$tabla="materiales_actividad";
$conexion=mysql_connect("localhost","root") or die (mysql_error());
$db=mysql_select_db($db,$conexion) or die (mysql_error());
$sql="select * from $tabla ";
$result=mysql_query($sql,$conexion);
$sql "insert into materiales_actividad (id_material,cantidad) values ('".$id."', '".$arrUnd[$i]."')";
$result mysql_query("$sql") or die(mysql_error());
}
$i++;

Como te decia este me permite guardar a mi en una tabla el id_material y la cantidad, pero ahora necesito generar en el formulario un array mas que el cual es el porcentaje, pero en eso no tengo problema, por que lo hare con un hidden. El problema que tengo es que en el segundo codigo en el de procesamiento de arrays, no se como hacer para agregarle que me procese ese nuevo array y que a su vez me lo incerte juntamente con los demas y asi generar un solo registro.

Espero haberme dado a entender, y gracias por la ayuda.
  #6 (permalink)  
Antiguo 02/12/2008, 14:07
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Ayuda para modificar este codigo

Ups.. ya no quiero ver codigo..

mmm..!! supongo que los arreglos de cod_materiales,cantidad e id_factura coinciden en el numero de elementos.. me refiero a que el arreglo de materiales tiene el mismo numero de elementos que el arreglo cantidad e igualmente al arreglo factura..

O no coinciden o no necesariamente deben de coincidir ??
  #7 (permalink)  
Antiguo 02/12/2008, 14:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda para modificar este codigo

Pues son iguales los array, de los 3 elementos, pero como te repito lo unico que deseo es un codigo que me permita insertar en la tabla los 3 elementos pero de una sola vez, por que si los trabajo normalmente, lo que me hace es insera uno y despues el otro y despues el otro, en total me genera 3 registros si los trabajo normalmente, pero con el codigo que procesa los arrays me permite a mi incertar 2 array en un solo registro, pero ahora lo unico que deseo es agregarle algo mas para que me permita hacer la triple incersion de una sola vez.

Desde ya gracias y espero me haya dado a entender.
  #8 (permalink)  
Antiguo 02/12/2008, 14:55
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Ayuda para modificar este codigo

Ohh.. pues siendo un arreglo lo de las facturas y todos teniendo el mismo numero de elementos (items) esta mas facil aun..

Código:
insert into materiales_actividad (id_material,cantidad) values ('".$id."', '".$arrUnd[$i]."')
tu tienes eso.. y si quieres agregarle lo de las facturas.. entonces

Código:
insert into materiales_actividad 
   (
      id_material,
      cantidad,
      idfactura
   )
   values (
      '".$id."',
      '".$arrUnd[$i]."', 
      '".$arr_facturas[$i]."'
   )
de todas formas por ahi utilizas $i como una variable autoincremental..
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 16:14.