Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Riconoscere un valore in un ciclo while

    Salve a tutti,
    sono parecchie ore che tento di risolvere questo problema: ho bisogno che in ogni record estratto con il ciclo while mi venga fatto il calcolo dei giorni di differenza relativo alla data odierna per avere segnalato tre diverse risposte: attiva(se restituisce un valore prima di gg. 30) in scadenza ((se restituisce un valore entro gg. 30) e scaduta (se restituisce un valore oltre gg. 30). il codice che ho provato mi da' sempre valori sballati, dove sta l'inghippo?

    Codice PHP:
    while ($record mysql_fetch_array ($mostra))
    {
    $data_scad $record[data_scad];
    $dataoggi date("d/m/Y"); 
    $date_from_parts explode('/'$dataoggi);
    $date_to_parts explode('/'$data_scad);
    $ts_from mktime(000$date_from_parts[1], $date_from_parts[0], $date_from_parts[2]);
    $ts_to mktime(000$date_to_parts[1], $date_to_parts[0], $date_to_parts[2]);
    for (
    $x $ts_from$x <= $ts_to$x += 86400){
    $days[] = date('d/m/Y'$x);
    }
    for (
    $i 0$i <= count($days)-1$i++){      

    }
    $giorni "".count($days);
    if (
    $giorni 30 ){
    echo 
    "attiva";
    }
    if (
    $giorni 30 and $giorni 0){
    echo 
    "in scadenza";
    }
    if (
    $giorni 31 and $giorni <= 0){
    echo 
    "cassata";

    se questo codice lo provo assestante , fuori dal ciclo while, va bene, se lo inserisco nel ciclo non ottengo il riconoscimento delle date di ogni record.
    Se sono stato chiaro, qualcuno mi può aiutare?

  2. #2
    Ciao prova a vfare un output di sto valore $data_scad = $record[data_scad];

    ma scusa, presumendo che tu abbia un db e debba fare un controllo sulle date non ti conviene farlo via query e salvare il timestamp n un campo int?


  3. #3
    premetto che inizialmente la data fu salvata in un campo varchar, (il campo del DB contiene centinaia di records) quindi tale data la ricavo come carattere e me la restituisce esattamente. Poi se lancio una prova del tipo:
    Codice PHP:

    $data_scad 
    "24/10/2009";
    $dataoggi date("d/m/Y"); 
    $date_from_parts explode('/'$dataoggi);
    $date_to_parts explode('/'$data_scad);
    $ts_from mktime(000$date_from_parts[1], $date_from_parts[0], $date_from_parts[2]);
    $ts_to mktime(000$date_to_parts[1], $date_to_parts[0], $date_to_parts[2]);
    for (
    $x $ts_from$x <= $ts_to$x += 86400){
    $days[] = date('d/m/Y'$x);
    }
    for (
    $i 0$i <= count($days)-1$i++){     

    }
    $giorni "".count($days);
    if (
    $giorni 30 ){
    echo 
    "attiva";
    }
    if (
    $giorni 30 and $giorni 0){
    echo 
    "in scadenza";
    }
    if (
    $giorni 31 and $giorni <= 0){
    echo 
    "scaduta!";
    }
    echo 
    "
    $giorni"
    anche questo è ok, non appena inserisco questo codice nel ciclo, sostituendo quindi ($data_scad = "24/10/2009" con $record[data_scad]; ottengo delle date incongruenti e quindi sballano i valori "attiva, scadenza, etc." io mi chiedo cosa cambia se la variabile arriva dal DB o stai dando un valore direttamente nool script?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.