bobaso
18-11-2010, 16:04
Ciao a tutti,sono nuovo di PHP e mi trovo di fronte un problema che mi sta presentando qualche difficoltà.
Allora,sto lavorando su di un database implementato su Phpmyadmin e gestendolo con CakePHP
;lo scopo di una delle tabelle del database è quello di inserire (tramite browser) un periodo di tempo tramite data di inizio e fine E (in un altro campo della tabella ovviamente) 3 valori numerici che vanno da 1 a 7 (questi 7 valori numerici rappresentano rispettivamente i giorni della settimana).
Una volta inseriti questi dati,devo implementare in uno dei controllori (ovvero,in uno dei file php che andranno a gestire la tabella in questione) una funzione...e qui salta fuori il problema che vado ad illustrarvi:
Se per esempio nel campo della tabella dove vado ad inserire quei 3 famosi valori numerici da 1 a 7, inserisco (1;2;4) , ciò sta a significare che in base al lasso di tempo indicato nell'altro campo (prendiamo ad esempio FROM: 17-11-2010; TO: 17-11-2011) dovrò assegnare a tutti i:
-Lunedì
-Martedì
-Giovedì
la loro rispettiva data (ed eventualmente stamparla a video) compresa nel range temporale sopra indicato.
Come avrete capito si tratta di un problema di associazione dinamica,e se poteste darmi un aiuto mi fareste un enorme cortesia.
Parlando in termini di pseudocodice,provo a mostrarvi quello che ho appena composto.
Magari se potete darmi un parere su ciò che funziona o no,o come sarebbe possibile implementarlo in alternativa:
Nota: $giorni è una variabile che ho ottenuto in precedenza,la quale include i 3 valori numerici (es: 1;2;4) passatigli tramite la funzione explode().In pratica $giorni è stata inizializzata con i valori numerici (1;2;4).
-----------------------------------------
while($data_iniziale<=$data_finale)
{
foreach($giorni as $giorno)
{
$numero=date("w");
if($giorno==$numero)
{
$numero_giorno_mese=date("j");
$numero_mese=date("n");
$numero_anno=date("Y");
echo "$numero_giorno_mese $numero_mese $numero_anno;
}
--------------------------------------
Tra le cose che so di dover correggere vi è l'incremento,intendo lo scorrimento dalla data iniziale a quella finale.
Quello che più mi fa pensare è se il programma capisce che deve stampare quel dato giorno della settimana,in quanto solo quell'if() non mi sembra che produca i risultati sperati.
Grazie in anticipo per le eventuali risposte e soluzione =)
Allora,sto lavorando su di un database implementato su Phpmyadmin e gestendolo con CakePHP
;lo scopo di una delle tabelle del database è quello di inserire (tramite browser) un periodo di tempo tramite data di inizio e fine E (in un altro campo della tabella ovviamente) 3 valori numerici che vanno da 1 a 7 (questi 7 valori numerici rappresentano rispettivamente i giorni della settimana).
Una volta inseriti questi dati,devo implementare in uno dei controllori (ovvero,in uno dei file php che andranno a gestire la tabella in questione) una funzione...e qui salta fuori il problema che vado ad illustrarvi:
Se per esempio nel campo della tabella dove vado ad inserire quei 3 famosi valori numerici da 1 a 7, inserisco (1;2;4) , ciò sta a significare che in base al lasso di tempo indicato nell'altro campo (prendiamo ad esempio FROM: 17-11-2010; TO: 17-11-2011) dovrò assegnare a tutti i:
-Lunedì
-Martedì
-Giovedì
la loro rispettiva data (ed eventualmente stamparla a video) compresa nel range temporale sopra indicato.
Come avrete capito si tratta di un problema di associazione dinamica,e se poteste darmi un aiuto mi fareste un enorme cortesia.
Parlando in termini di pseudocodice,provo a mostrarvi quello che ho appena composto.
Magari se potete darmi un parere su ciò che funziona o no,o come sarebbe possibile implementarlo in alternativa:
Nota: $giorni è una variabile che ho ottenuto in precedenza,la quale include i 3 valori numerici (es: 1;2;4) passatigli tramite la funzione explode().In pratica $giorni è stata inizializzata con i valori numerici (1;2;4).
-----------------------------------------
while($data_iniziale<=$data_finale)
{
foreach($giorni as $giorno)
{
$numero=date("w");
if($giorno==$numero)
{
$numero_giorno_mese=date("j");
$numero_mese=date("n");
$numero_anno=date("Y");
echo "$numero_giorno_mese $numero_mese $numero_anno;
}
--------------------------------------
Tra le cose che so di dover correggere vi è l'incremento,intendo lo scorrimento dalla data iniziale a quella finale.
Quello che più mi fa pensare è se il programma capisce che deve stampare quel dato giorno della settimana,in quanto solo quell'if() non mi sembra che produca i risultati sperati.
Grazie in anticipo per le eventuali risposte e soluzione =)