Foros del Web » Programando para Internet » PHP »

Ingreso array

Estas en el tema de Ingreso array en el foro de PHP en Foros del Web. Hola les cuento que quiero hacer un insert masivo y no me esta funcionando. lo que tengo es varios checkbox y en su vale paso ...
  #1 (permalink)  
Antiguo 24/10/2010, 19:31
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Ingreso array

Hola les cuento que quiero hacer un insert masivo y no me esta funcionando.

lo que tengo es varios checkbox y en su vale paso el nick por ejemplo

kanino
roberto
manuel
etc...

la idea es hacer un ingreso masivo a base de datos, digo selecciono todos los checkbox e ingreso los nombres pero no logro hacerlo :/ estoy haciendo

Código PHP:
Ver original
  1. $estado = "1";
  2. $lista=implode(',',$_POST['usuarios]); //con esto compruebo que los datos si los recibo bien
  3.  
  4. for($i=0;$i<count($lista);$i++) {
  5. $lista2 = $lista[$i];
  6.  
  7. mysql_query ("INSERT INTO nombre_activado"
  8. ." (usuario, estado)"
  9. ." Values"
  10. ." ('$lista', '$estado')") or die ("Error ".mysql_error());
  11. }

estoy pasandolos con un for :/ deberia ingresarlos bien no se por que no me funciona, alguna idea a esta hora ya no carburo bien

Saludos.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 24/10/2010, 19:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Ingreso array

has visto para que se usa un implode?? al hacer eso estas uniendo todo lo que te traiga en $_POST['usuarios'] suponiendo yo que esto es un array, es decir si lo que pienso que deseas hacer es sierto no es necesario esta saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 25/10/2010, 08:38
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Respuesta: Ingreso array

pues como expuse arriba solo puse el implode para ver si los datos los recibo bien, claramente puse una mezcla de códigos :P debería haber puesto
$lista = $_POST[usuarios];
pero no me hace el insert? me ingresa solo una A y el primer arreglo, ven algun problema :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 25/10/2010, 08:52
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Ingreso array

Hola!
Al hacer esto:

for($i=0;$i<count($lista);$i++)

le indicas que haga un ciclo con el número de vueltas que salga del resultado de contar el número de caracteres que contiene $lista

creo que no tiene sentido, tienes que buscar la forma de contar el número de nombres que pasas, no sé como tengas el formulario anterior.


También al hacer la consulta:
mysql_query ("INSERT INTO nombre_activado"
." (usuario, estado)"
." Values"
." ('$lista', '$estado')") or die ("Error ".mysql_error());
}

Te falta poner $lista[$i]

Saludos
  #5 (permalink)  
Antiguo 25/10/2010, 13:15
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Respuesta: Ingreso array

bueno claro no le estoy pasando un numero al for si no letras, les recomiendo dormir a veces X), bueno ya solucione el problema para contar solo le aplico un count al arreglo para que me de el numero de datos para recorrer en el for, el problema es que aun me ingresa solo el primer arreglo :/

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST[enviar]))
  3. {
  4. $cuenta = count($_POST[id]);
  5. $campo2 = "master";
  6. $estado = "1";
  7. $lista=$_POST[id];
  8. for($i=0;$i<count($cuenta);$i++) {
  9. mysql_query ("INSERT INTO tabla"
  10. ." (campo, campo2, estado)"
  11. ." Values"
  12. ." ('$lista[$i]', '$campo2', '$estado')") or die ("Error ".mysql_error());
  13. }
  14. echo "Se ingresaron los datos : $cuenta";
  15. }
  16. ?>

Saludos y gracias
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 25/10/2010 a las 13:53
  #6 (permalink)  
Antiguo 25/10/2010, 14:14
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Respuesta: Ingreso array

lo logre con un foreach, raro no pude hacerlo con un for o me ingresaba la primera letra o solo el primer nombre del arreglo.

de todas formas dejo como lo resolvi pero voy a ver que pasa con el for, deberia resultar igualmente.


Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect("localhost","root", "");
  3. mysql_select_db("pruebas", $conexion);
  4. ?>
  5. <form method="post" action="prueba.php">
  6. <table align="center" width="250" border="1" cellpadding="0" cellspacing="0">
  7. <tr><td width="193">Nombres</td><td width="51"><input type="submit" name="enviar" value="Enviar" /></td></tr>
  8. <?php
  9. $sql=mysql_query("SELECT * FROM prueba");
  10. while ($datos = mysql_fetch_array($sql))
  11. {
  12. ?>
  13. <tr><td width="193"><?php echo "$datos[campo1]";?></td><td width="51"><input type="checkbox" name="id[]" value="<?php echo "$datos[campo1]";?>" /></td></tr>
  14. <?php
  15. }
  16. ?>
  17. </table>
  18. </form>
  19. <br />
  20. <?php
  21. if (isset($_POST[enviar]))
  22. {
  23. ?>
  24. <table align="center" width="250" border="1" cellpadding="0" cellspacing="0">
  25. <tr><td>
  26. <?php
  27. $cuenta = count($_POST[id]);
  28. $campo2 = "master";
  29. $estado = "1";
  30. $lista = $_POST['id'];
  31. //for($i=0;$i<count($cuenta);$i++) {
  32. foreach($lista as $n_nombres)
  33. {
  34. mysql_query ("INSERT INTO tabla"
  35. ." (campo, campo2, estado)"
  36. ." Values"
  37. ." ('$n_nombres', '$campo2', '$estado')") or die ("Error ".mysql_error());
  38. }
  39. echo "Se ingresaron los datos : $cuenta";
  40. ?>
  41. </td></tr>
  42. </table>
  43. <?php
  44. }
  45. ?>
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #7 (permalink)  
Antiguo 25/10/2010, 15:15
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Ingreso array

El problema del for es el siguiente

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST[enviar]))
  3. {
  4. $cuenta = count($_POST[id]);
  5. $campo2 = "master";
  6. $estado = "1";
  7. $lista=$_POST[id];
  8. for($i=0;$i<=$cuenta;$i++) { //ESTA LINEA
  9. mysql_query ("INSERT INTO tabla"
  10. ." (campo, campo2, estado)"
  11. ." Values"
  12. ." ('$lista[$i]', '$campo2', '$estado')") or die ("Error ".mysql_error());
  13. }
  14. echo "Se ingresaron los datos : $cuenta";
  15. }
  16. ?>
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Etiquetas: ingreso
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 14:43.