Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar Array en mysql

Estas en el tema de Insertar Array en mysql en el foro de PHP en Foros del Web. Buenas chicos como estan, no vengo con la intencion de que me insulten ni nada de eso, el problema es que tengo un codigo que ...
  #1 (permalink)  
Antiguo 01/07/2015, 12:19
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Pregunta Insertar Array en mysql

Buenas chicos como estan, no vengo con la intencion de que me insulten ni nada de eso, el problema es que tengo un codigo que me genera una serie de fechas en intervalos pero no se como insertarlas en mi tabla, obviamente no soy muy diestro con php, quiza es muy tonto esto pero soy autodidacta y me esta comiendo.

Como ven me genera la secuencia de fechas cada 7 o 6 dias o el intervalo que le envie.
Mi base tienes los campos id - nombre - fecha

El asunto es que necesito pasar un unico nombre desde el formulario y que este se repita en la inserción junto con la fecha del array.

Gracias por la ayuda que me puedan prestar
  #2 (permalink)  
Antiguo 01/07/2015, 12:20
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

el codigo que me genera la fecha es este:
Código PHP:
Ver original
  1. $inifecha = date("Y-m-d");
  2. $lapso = 6;
  3. $lafecha = explode("-",$inifecha);
  4. $dias = 3;
  5. $i=0;
  6. while ($i < $dias){
  7. $inifecha = date("Y-m-d",mktime(0,0,0,$lafecha[1],$lafecha[2]+$i*$lapso,$lafecha[0]));
  8. echo "<br>";
  9. echo "La fecha es: ","$inifecha";
  10. $i=$i+1;
  11. }
la fecha la genera de esta manera, claro el valor de nombre va desde un formulario:
La fecha es: 2015-07-01
La fecha es: 2015-07-30
La fecha es: 2015-08-28
La fecha es: 2015-09-26
La fecha es: 2015-10-25
  #3 (permalink)  
Antiguo 01/07/2015, 13:09
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: Insertar Array en mysql

OK, ¿y cómo la estás mandando a insertar?
Eso, siempre recordando que en MySQL no existen arrays, por lo que el INSERT deberá ser iterativo, es decir insertar uno a uno los registros...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 01/07/2015, 13:26
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
OK, ¿y cómo la estás mandando a insertar?
Eso, siempre recordando que en MySQL no existen arrays, por lo que el INSERT deberá ser iterativo, es decir insertar uno a uno los registros...
Gracias por responder, en este momento estoy intentando con el siguiente codigo:
Código PHP:
Ver original
  1. $nombre = array($valor);
  2. $fecha = array();
  3.  
  4. foreach($nombre as $key=>$value)
  5.     $nombre[]= $value;
  6.  
  7. foreach($fecha as $key=>$value)
  8.     $cfecha[]= $value;
  9.  
  10. $conexion= mysql_connect($hostname_seguridad, $username_seguridad, $password_seguridad);
  11. mysql_select_db($database_seguridad, $conexion);
  12.  
  13. for($i=0; $i<count($nombre); $i++)
  14. {
  15.    mysql_query("INSERT INTO fecha (nombre, fecha) VALUES('$nombre[$i]' , '$fecha[$i]')",$conexion)or die(mysql_error());
  16.    
  17.  
  18. }
pero solo logro insertar el $valor pero no las fechas y solo me crea 2 filas
  #5 (permalink)  
Antiguo 01/07/2015, 13:27
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

como pueden ver estoy un poco perdido, en tal caso como podria crear un intervalo de fechas e integrarlo al codigo de inserción???
  #6 (permalink)  
Antiguo 01/07/2015, 13:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar Array en mysql

Si necesitas un único nombre... porqué usas array en vez de una cadena?

Código PHP:
Ver original
  1. $nombre = 'Juan Pérez';
  2.  
  3. // Luego tu consulta para insertar sería:
  4.    mysql_query("INSERT INTO fecha (nombre, fecha) VALUES('$nombre', '{$fecha[$i]}')",$conexion)or die(mysql_error());

Para evitarte problemas, encierra entre llaves los valores de array que incluyas en una cadena.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 01/07/2015, 13:49
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

Gracias por responder, tienes razon con el nombre y voy a hacer las modificaciones, el problema esta en que no se como hacer el intervalo de fechas, pasarlas a un array e insertarlas en la base
  #8 (permalink)  
Antiguo 01/07/2015, 14:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

logre hacerlo de esta manera, es decir me genera el rango de fechas y las fuarda con el valor en la base, pero repite los registros:
Código PHP:
Ver original
  1. $fechaIni = date("Y-m-d");
  2. $fechaFin = ("2015-07-15");
  3. $nombre = "Carlos";
  4.  
  5. $fecha = ( dateRange( $fechaIni, $fechaFin, '+7 days') );
  6.  
  7. //foreach($nombre as $key=>$value)
  8. //    $nombre[]= $value;
  9.  
  10. foreach($fecha as $key=>$value)
  11.     $fecha[]= $value;
  12.  
  13. $conexion= mysql_connect($hostname_seguridad, $username_seguridad, $password_seguridad);
  14. mysql_select_db($database_seguridad, $conexion);
  15.  
  16. for($i=0; $i<count($fecha); $i++)
  17. {
  18.    mysql_query("INSERT INTO fecha (nombre, fecha) VALUES('$nombre' , '{$fecha[$i]}')",$conexion)or die(mysql_error());
  19.  
  20. }
salen así;
2015-07-01
2015-07-08
2015-07-15
2015-07-01 ->repetido
2015-07-08 ->repetido
2015-07-15 ->repetido
  #9 (permalink)  
Antiguo 01/07/2015, 15:13
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Insertar Array en mysql

listo elimine el foreach y dejo de repetir los registros, valga acotar que tengo un codigo de prueba encima de este y este deja de funcionar si elimino el otro si alguien sabe como hacer para que funcione solo sin el que voy a colocar les agradeceria:
Código PHP:
Ver original
  1. $first = date("Y-m-d");
  2. $last = ("2015-07-05");
  3. function dateRange( $first, $last, $step = '+1 day', $format = 'Y-m-d' ) {
  4.  
  5.     $dates = array();
  6.     $current = strtotime( $first );
  7.     $last = strtotime( $last );
  8.  
  9.     while( $current <= $last ) {
  10.  
  11.         $dates[] = date( $format, $current );
  12.         $current = strtotime( $step, $current );
  13.     }
  14.  
  15.     return $dates;
  16. }
No veo relacion entre el de arriba y este otr que es el que funciona solo con el de arriba, pero bueno, al menor funciona, seguire viendo a ver que paso alli:
Código PHP:
Ver original
  1. $fechaIni = (date("Y-m-d"));
  2. $fechaFin = ("2015-07-15");
  3. $nombre = "Carlos";
  4.  
  5. $fecha = ( dateRange( $fechaIni, $fechaFin, '+7 days') );
  6.  
  7. //foreach($nombre as $key=>$value)
  8. //    $nombre[]= $value;
  9.  
  10. //foreach($fecha as $key=>$value)
  11. //    $fecha[]= $value;
  12.  
  13. $conexion= mysql_connect($hostname_seguridad, $username_seguridad, $password_seguridad);
  14. mysql_select_db($database_seguridad, $conexion);
  15.  
  16. for($i=0; $i<count($fecha); $i++)
  17. {
  18.    mysql_query("INSERT INTO fecha (nombre, fecha) VALUES('$nombre' , '$fecha[$i]')",$conexion)or die(mysql_error());
  19.    
  20.    }
  21.    print_r( dateRange( $fechaIni, $fechaFin, '+7 days') );

Etiquetas: fecha, formulario, mysql, tabla
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:46.