Inicio /
Foros /
PHP / Insertar multiples registros con diferente fecha
Insertar multiples registros con diferente fecha
|
| #0 |
 |
uncion7 |
Usuario |
20 mar 08 (06:00) |
|
|
Hola, soy novato con la programacion en PHP y MYSQL, les agradezco si me pueden ayudar con lo siguiente:
Tengo un formulario el cual tiene tres campos:
Campo1= actividad
Campo2=fecha_limite
Campo3=frecuencia
El Campo3 es FRECUENCIA, esta puede ser Diaria, Semanal o Mensual o Bimensual.
cuando la frecuencia es mensual la FECHA_LIMITE cambia para cada mes hasta finalizar el año, pero la ACTIVIDAD y la FRECUENCIA se mantienen iguales en cada registro.
Como puedo hacer para insertar varios registros con la misma ACTIVIDAD Y FRECUENCIA pero con distinta FECHA_LIMITE.
A continuacion escribo un ejemplo:
Registro1 Reunion con los Trabajadores 25-May-2008 Mensual
Registro2 Reunion con los Trabajadores 25-Jun-2008 Mensual
Registro3 Reunion con los Trabajadores 25-Jul-2008 Mensual
Registro4 Reunion con los Trabajadores 25-Aug-2008 Mensual
Registro5 Reunion con los Trabajadores 25-Sep-2008 Mensual
Registro6 Reunion con los Trabajadores 25-Oct-2008 Mensual
Registro7 Reunion con los Trabajadores 25-Nov-2008 Mensual
Registro8 Reunion con los Trabajadores 25-Dec-2008 Mensual
Gracias por la ayuda
|
Re: Insertar multiples registros con diferente fec
|
| #1 |
 |
Mike |
Usuario |
20 mar 08 (19:03) |
|
|
Creo que seria una buena idea intentarlo con un bucle, no se exactamente como pasas los datos, si uno a uno (Reunion1, luego reunion2, ..., o todos a la vez) o a la vez, asi que simplemente te digo que es lo que puedes necesitar.
Informacion sobre estructuras de control: http://es2.php.net/manual/es/control-structures.php
Informacion mas concreta hacia ciertos bucles:
· http://es2.php.net/manual/es/control-structures.while.php
· http://es2.php.net/manual/es/control-structures.for.php
· http://es2.php.net/manual/es/control-structures.foreach.php
Informacion sobre arrays, si metes todos los datos quiza lo necesites: http://es.php.net/manual/es/function.array.php
(Mirate los arrays multidimensionales, y la sintaxis para mostrarlos en un bucle)
Aun asi, si me dices los campos de la base de datos y como recojes los datos (Muestras el formulario, y una insercion tipica de datos), te miro la forma de como puedes hacerlo.
Un saludo! (\__/)
(='.'=) Este es Bunny. Copia y pega a Bunny en
(")_(") tu firma y ayudalo a conquistar el mundo!!!
-----------------------------------------------------------------------
Su publicidad aqui por solo 10€, resultados garantizados!!!!
|
Insertar multiples registros con diferente fecha
|
| #2 |
 |
uncion7 |
Usuario |
20 mar 08 (22:50) |
|
|
Hola Mike, Gracias por responder.
Te cuento como esta mi base de datos:
id_actividad=int(10), primary key (autoincrement)
actividad= varchar(50)
fecha_limite=Date
frecuencia=varchar(50)
Tengo un formulario que donde aparece:
ACTIVIDAD
FECHA LIMITE
FRECUENCIA = este es un SELECT LIST con varias opciones (No Frecuente, Diaria, Semanal, Quincenal, Mensual, Bimensual, Trimestral, Cuatrimestral y Semestral).
Ademas el formulario tiene el boton ENVIAR Y CANCELAR
La ideas es que cuando llene un registro al darle click en el boton enviar el realice lo siguiente:
Verifique que valor tiene el campo FRECUENCIA y si es No Frecuente, grabo toda la informacion en un registro en la base de datos MySQL. Pero si el campo FRECUENCIA es MENSUAL O DIARIO, realice un bucle grabando toda la informacion en varios registros y va cambiando la fecha.
El bucle ya lo construi para que cambie la fecha:
////////////////////////////////////////////////
//Mostrar varios registros con diferente fecha
///////////////////////////////////////////////
//Defino la variables que deben estar en el formulario
$actividad="Reunion de Jovenes";
$frecuencia="Trimestral";
$fecha_limite="25-Mar-2008";
// Creo una Variable para calculos con las fechas
$fecha_limite_str=strtotime($fecha_limite);
//Creo la fecha limite en la que oscila la frecuencia es decir hasta el 31 de diciembre del presente año
$fin="31-Dec-".date(Y);
$fin_de_ano=strtotime($fin);
//Le doy distintos valores a cada tipo de frecuencia
if($frecuencia=="Diaria"){
$frec="days";
$frec2="1";
}elseif($frecuencia=="Semanal"){
$frec="weeks";
$frec2="1";
}elseif($frecuencia=="Quincenal"){
$frec="weeks";
$frec2="2";
}elseif($frecuencia=="Mensual"){
$frec="months";
$frec2="1";
}elseif($frecuencia=="Bimensual"){
$frec="months";
$frec2="2";
}elseif($frecuencia=="Trimestral"){
$frec="months";
$frec2="3";
}elseif($frecuencia=="Cuatrimestral"){
$frec="months";
$frec2="4";
}elseif($frecuencia=="Semestral"){
$frec="months";
$frec2="6";
}elseif($frecuencia=="No Recurrente"){
$frec="years";
$frec2="1";
}
//Creo el bucle para que la fecha limite se repita dependiendo de el tipo de frecuencia escogida
for ($i=0; strtotime($i.$frec,$fecha_str)<=$fin_de_ano; $i=$i+$frec2){
$fecha_limite_fin=date("d-M-Y",strtotime($i.$frec,$fecha_limite_str));
echo " $fecha_limite_fin";
echo " $frecuencia";
echo " $actividad </br>";
}
ESTE ES EL RESULTADO QUE ME MUESTRA:
25-Mar-2008 Trimestral Reunion de Jovenes
25-Jun-2008 Trimestral Reunion de Jovenes
25-Sep-2008 Trimestral Reunion de Jovenes
25-Dec-2008 Trimestral Reunion de Jovenes
Lo que no se que hacer ahora es como recogo o mantengo la misma informacion de los campos: ACTIVIDAD Y FRECUENCIA, para que automaticamente con la fecha se vaya grabando en nuevos registros en la base de datos con la funcion INSERT.
GRACIAS POR LA AYUDA.
|
Insertar multiples registros con diferente fecha
|
| #3 |
 |
jurena |
Usuario |
21 mar 08 (13:19) |
|
|
Aunque no entiendo del todo bien la lógica que empleas (quizás porque no sé exactamente todo lo que intentas hacer), creo que casi puedes hacerlo con lo que ya tienes
Código PHP
<?php
//Creas el bucle para que la fecha limite se repita dependiendo de el tipo de frecuencia escogida
for ($i=0; strtotime($i.$frec,$fecha_str)<=$fin_de_ano; $i=$i+$frec2){//este mismo bucle te servirá para insertar cada registro en la tabla...
$fecha_limite_fin=date("Y-m-d",strtotime($i.$frec,$fecha_limite_str));//te he cambiado el modo en que debe aparecer la fecha para poder cargarla en MySQL, que es año completo, mes con dos dígitos y día.
$query="INSERT INTO nombretabla (campofechalimite, campofrecuencia, campoactividad) VALUES ('$fecha_limite_fin', '$frecuencia', '$actividad ')";//los campos fecha y texto van entre comillas
mysql_query($query);
}
?>
Pero, como te he dicho, no acabo de entenderlo todo... Quizás pudieras hacerlo todo de otra manera, pero para lo que tienes ahora tal vez te sirva...
Suerte
|
Responder mensaje
Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano,
:: Registrar ::