Foros del Web » Programando para Internet » PHP »

guardar varios numeros a la vez en mysql

Estas en el tema de guardar varios numeros a la vez en mysql en el foro de PHP en Foros del Web. No se muy bien como podria hacer para guardar datos numericos a al vez en mysql, no se que tipo de input usar y la ...
  #1 (permalink)  
Antiguo 01/10/2012, 11:35
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
guardar varios numeros a la vez en mysql

No se muy bien como podria hacer para guardar datos numericos a al vez en mysql, no se que tipo de input usar y la manera correcta de hacerlo, alguna idea de como puedo hacerlo?
saludos.
  #2 (permalink)  
Antiguo 01/10/2012, 11:42
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: guardar varios numeros a la vez en mysql

Si quieres usar un solo input, una manera seria con un

Código HTML:
Ver original
  1. <select name="numeros[]" multiple="multiple">

luego recoges los valores desde php pero esta vez tendras un array en vez de un valor simple.

Código PHP:
Ver original
  1. $numeros = $_POST['numeros];
  2. var_dump($numeros);
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 01/10/2012, 11:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por azaz Ver Mensaje
No se muy bien como podria hacer para guardar datos numericos a al vez en mysql, no se que tipo de input usar y la manera correcta de hacerlo, alguna idea de como puedo hacerlo?
saludos.
varios numeros como??...
Brujos no habemos tampoco.
  #4 (permalink)  
Antiguo 01/10/2012, 12:14
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: guardar varios numeros a la vez en mysql

Bueno quizas no me explique bien, seria guardar la referencia de los pedidos que son 6 cifras, pero claro lo que intento es guardar de golpe 20 referencias, supongo que el campo simplemente de texto pero tampoco estoy seguro, pero si fuera un campo de texto tampoco se como hacer el insert a mysql con todas las referencias, si me podeis orientar, un saludo.
  #5 (permalink)  
Antiguo 01/10/2012, 12:17
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: guardar varios numeros a la vez en mysql

un insert por registro, ayudate de un for o while
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 01/10/2012, 12:19
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por azaz Ver Mensaje
Bueno quizas no me explique bien, seria guardar la referencia de los pedidos que son 6 cifras, pero claro lo que intento es guardar de golpe 20 referencias, supongo que el campo simplemente de texto pero tampoco estoy seguro, pero si fuera un campo de texto tampoco se como hacer el insert a mysql con todas las referencias, si me podeis orientar, un saludo.
Arriba te pase una posible solución cargando los números en un select.

También puedes dar un textarea para que ingresen los números y solicitar un separador (un punto y coma);

Luego desde php

Código PHP:
Ver original
  1. $numeros = explode(';', $_POST['numeros']);

Una vez que tienes tu arreglo con los numeros que deseas ingresar, solo resta hacer el insert recorriendo el array
Código PHP:
Ver original
  1. foreach ($numeros as $numero){
  2. //lo hago con mysql a modo de ejemplo, pero recomiendo el uso de PDO o Mysqli
  3.     mysql_query('INSERT INTO tabla (campo) VALUES('.$valor.')');
  4. }
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 01/10/2012, 12:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: guardar varios numeros a la vez en mysql

Pues como te lo han dicho mas arriba...
Código PHP:
Ver original
  1. <input name=ref[] type="text"/>
  2. <input name=ref[] type="text"/>
  3. <input name=ref[] type="text"/>
  4. <input name=ref[] type="text"/>

Al hacer el envío te manda todos los valores en un array que se llama ref
Recorres el array y haces la inserción en la base de datos.

Código PHP:
Ver original
  1. foreach($_POST['ref'] as $valor){
  2. mysql_query("INSERT INTO referencias (referencia, campo2, campo3) VALUES ('".$valor."','otro valor', 'otro valor')");
  3. }
  #8 (permalink)  
Antiguo 01/10/2012, 12:46
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por h2swider Ver Mensaje
Arriba te pase una posible solución cargando los números en un select.

También puedes dar un textarea para que ingresen los números y solicitar un separador (un punto y coma);

Luego desde php

Código PHP:
Ver original
  1. $numeros = explode(';', $_POST['numeros']);

Una vez que tienes tu arreglo con los numeros que deseas ingresar, solo resta hacer el insert recorriendo el array
Código PHP:
Ver original
  1. foreach ($numeros as $numero){
  2. //lo hago con mysql a modo de ejemplo, pero recomiendo el uso de PDO o Mysqli
  3.     mysql_query('INSERT INTO tabla (campo) VALUES('.$valor.')');
  4. }
Bueno en principio gracias a todos por la respuestas tan rapidas y soluciones, referente al codigo no se como solucionar si los numero a ingresar son de 5 cifras, ya que como me comentas que lo haga serian solo de una cifra, alguna ayuda, saludos.
  #9 (permalink)  
Antiguo 01/10/2012, 12:50
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por azaz Ver Mensaje
Bueno en principio gracias a todos por la respuestas tan rapidas y soluciones, referente al codigo no se como solucionar si los numero a ingresar son de 5 cifras, ya que como me comentas que lo haga serian solo de una cifra, alguna ayuda, saludos.
No hay diferencia si son números de 1,2, 5 o 150 cifras, los dos ejemplos que te otorgue sirven, intenta releerlos.
Código HTML:
Ver original
  1. <select name="numeros[]" multiple="multiple">
  2. <option value="11111">11111</option>
  3. <option value="22222">22222</option>
  4. <option value="33333">33333</option>

otra opción seria con el campo de texto y separando por ; como explique mas arriba
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #10 (permalink)  
Antiguo 01/10/2012, 13:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: guardar varios numeros a la vez en mysql

Por favor, recordar que en las bases de datos los campos multivaluados están prohibidos. Sólo sirven para generar problemas y consultas complicadas e ineficientes.
Un registro que se relacione con varios valores provenientes de otra tabla implica la existencia de una tercera tabla que relacione ambas entidades, donde cada vinculo entre la primera y la segunda tabla está representada por un único registro de la tercera tabla.
Por su parte si no existe una relación N:N entre ambas, sino una 1:N, eso significa que en la segunda tabla hay un campo que es clave foránea de la primera.
Bases de Datos no es programación, y tiene reglas bastante estrictas para construir las relaciones.
Tengan en cuenta que transgredirlas se paga con performance, desperdicio de recursos y problemas de integridad de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 01/10/2012, 13:19
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: guardar varios numeros a la vez en mysql

Lo probe con un textarea asin:

Código PHP:
Ver original
  1. <textarea name='numeros[]' multiple="multiple"  ></textarea>
  2.  
  3. $numeros = explode(';', $_POST['numeros']);

pero me da este error el explode:

Warning: explode() expects parameter 2 to be string, array given in
  #12 (permalink)  
Antiguo 01/10/2012, 16:28
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: guardar varios numeros a la vez en mysql

el error es porque $_POST['numeros'] es un array y no un string, recorrelo con un for y utiliza el valor almacenado en el array con cada una de las iteraciones.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #13 (permalink)  
Antiguo 01/10/2012, 19:05
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por eits Ver Mensaje
el error es porque $_POST['numeros'] es un array y no un string, recorrelo con un for y utiliza el valor almacenado en el array con cada una de las iteraciones.
No entiendo a que te refieres, porque como recupero los datos insertados en el textarea si no puedo utilizar el explode, saludos.

Última edición por azaz; 01/10/2012 a las 19:18
  #14 (permalink)  
Antiguo 01/10/2012, 20:07
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: guardar varios numeros a la vez en mysql

Cita:
Iniciado por jossss Ver Mensaje
Pues como te lo han dicho mas arriba...
Código PHP:
Ver original
  1. <input name=ref[] type="text"/>
  2. <input name=ref[] type="text"/>
  3. <input name=ref[] type="text"/>
  4. <input name=ref[] type="text"/>

Al hacer el envío te manda todos los valores en un array que se llama ref
Recorres el array y haces la inserción en la base de datos.

Código PHP:
Ver original
  1. foreach($_POST['ref'] as $valor){
  2. mysql_query("INSERT INTO referencias (referencia, campo2, campo3) VALUES ('".$valor."','otro valor', 'otro valor')");
  3. }
ya que estoy en practicas estoy probando todas las maneras de hacer esto que quiero, pero con este ejemplo tengo un problema que no se como solucinar, si tengo como en el ejemplo cuatro campos input pero uno de ellos osea el ultimo no se rellena como puedo evitar que en la base de datos no se inserte nada ya que de esta forma se me inserta 0, saludos.
  #15 (permalink)  
Antiguo 02/10/2012, 08:20
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: guardar varios numeros a la vez en mysql

verifica que tengas valor antes de intentar el insert
Código PHP:
Ver original
  1. foreach($_POST['ref'] as $valor){
  2. if(!empty($valor)){
  3. mysql_query("INSERT INTO referencias (referencia, campo2, campo3) VALUES ('".$valor."','otro valor', 'otro valor')");
  4. }else{
  5. //aqui tu codigó si esta vacia la variable, aunque esta parte no es necesaria.
  6. }
  7. }
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: mysql, numeros, vez
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 03:17.