Pagina 2 di 4 PrimoPrimo 1234 UltimoUltimo
Visualizzazione risultati 31 fino 60 di 106
Like Tree3Likes

Discussione: Calcolo tra start release_data

  1. #31
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,844

    Predefinito

    Le funzioni mysql_* non fanno pi parte di PHP dalla versione 7. Stai usando una versione del linguaggio non pi supportata da 2 anni e obsoleta da 4.
    Forse il caso di valutare un aggiornamento .

    I suggerimenti che do pi spesso:


  2. #32
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Allora sembra che visualizzo qualcosa, Birthday non e' compilato, solo died a 2020-08-01

    il conteggio dei giorni partendo da start 2020-08-31 sembra corretto

    non capisco questo dato, 40 years In the Business , da dove e' uscito?





    QUERY

    Codice PHP:

    $query 
    "SELECT 
    film_actor.actor_id as actor_id,
    actor.birthday as birthday,
    actor.died as died, 
    film_actor.film_id as film_id, 
    film_actor.credited as credited, 
    film_actor.genre as genre, 
    film.film_id as film_ID, 
    film.movie_title as movie_title,
    film.formats as formats, 
    film.studio as studio, 
    film.year  as film_year,
    film.also_known as also_known,
    film.incollection  as incollection,
    film.cover_front  as cover_front,
    film.release_data as release_data,
    film.last_update as last_update,
    film.distributor as distributor 
    FROM film_actor 
    INNER JOIN film ON film_actor.film_id = film.film_id 
    INNER JOIN actor ON film_actor.actor_id = actor.actor_id
    WHERE film_actor.actor_id = " 
    $actor_id;

    $result mysql_query$query );
    if (!
    $result)
     die(
    "mySQL error: "mysql_error());  
    while( 
    $row mysql_fetch_object$result ) ) : ?>  



    Codice corretto 
    Codice PHP:
        <?php
    //Codice PHP:
    $timezone timezone_open('UTC');
    $now date_create("now",$timezone);
    $ora $now->format('Y-m-d H:i:s');
    $today date_create('today',$timezone);
    $oggi $today->format('Y-m-d H:i:s');
    $start = (strlen($row->start) < 5) ? $row->start .'-01-01 00:00:00' $row->start;
    $end = (!empty($row->end) ? ((strlen($row->end) < 5) ? $row->end .'-01-01 00:00:00' $row->end) : $ora); 
    //Quando il file verr incluso o richiesto le variabili diverranno globali al script in uso. 

    ?>




    <?php
    if(isset($row->died) && ($row->died .'-01-01 00:00:00') == $end) {
        echo 
    'fine carriera';
    } elseif(
    $ora == $end) {
        echo 
    'carriera in corso';
    } else {
        echo 
    'abbandono carriera';
    }


    if(isset(
    $row->release_data) || isset($row->year)) {
        
    //differenza film dall'inizio carriera di un'attore
        
    $release_data = isset($row->release_data) ? $row->release_data .' 00:00:00' $row->year .'-01-01 00:00:00';
        
    $diff_film date_create($release_data$timezone)->diff(date_create($start$timezone));
        
    $testo 'In The Business';

        
    $year_film $diff_film->y;
        
    $mese_film $diff_film->m;
        
    $giorni_film $diff_film->d;
            if(
    $year_film) {
                echo 
    '<font color="blue">' $year_film '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_film == && $giorni_film == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_film) {
                echo 
    '<font color="red">' $mese_film '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_film) {
                    echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;' $testo;
            }
    }

    if(isset(
    $release_data) && substr($oggi04) == substr($release_data04)) {
        
    //differenza anno corrente film
        
    $diff_current_year date_create($release_data$timezone)->diff(date_create($oggi$timezone));
        
    $testo 'In The Business';

        
    $year_current $diff_current_year->y;
        
    $mese_current $diff_current_year->m;
        
    $giorni_current  $diff_current_year->d;
            if(
    $year_current) {
                echo 
    '<font color="blue">' $year_current '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_current == && $giorni_current == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_current) {
                echo 
    '<font color="red">' $mese_current '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_current) {
                    echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;' $testo;
            }
    }  


    ?>
    Ultima modifica di blackskyisback : 03-09-2020 alle ore 16.04.42

  3. #33
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Le funzioni mysql_* non fanno pi parte di PHP dalla versione 7. Stai usando una versione del linguaggio non pi supportata da 2 anni e obsoleta da 4.
    Forse il caso di valutare un aggiornamento .
    dovrei rifare tutto da capo, non ho certa questa voglia, il codice e' perfettamente funzionante adesso e non lo devo distribuire a nessuno

  4. #34
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Citazione Originalmente inviato da blackskyisback Visualizza messaggio
    Allora sembra che visualizzo qualcosa, Birthday non e' compilato, solo died a 2020-08-01

    il conteggio dei giorni partendo da start 2020-08-31 sembra corretto

    non capisco questo dato, 40 years In the Business , da dove e' uscito?





    QUERY

    Codice PHP:

    $query 
    "SELECT 
    film_actor.actor_id as actor_id,
    actor.birthday as birthday,
    actor.died as died, 
    film_actor.film_id as film_id, 
    film_actor.credited as credited, 
    film_actor.genre as genre, 
    film.film_id as film_ID, 
    film.movie_title as movie_title,
    film.formats as formats, 
    film.studio as studio, 
    film.year  as film_year,
    film.also_known as also_known,
    film.incollection  as incollection,
    film.cover_front  as cover_front,
    film.release_data as release_data,
    film.last_update as last_update,
    film.distributor as distributor 
    FROM film_actor 
    INNER JOIN film ON film_actor.film_id = film.film_id 
    INNER JOIN actor ON film_actor.actor_id = actor.actor_id
    WHERE film_actor.actor_id = " 
    $actor_id;

    $result mysql_query$query );
    if (!
    $result)
     die(
    "mySQL error: "mysql_error());  
    while( 
    $row mysql_fetch_object$result ) ) : ?>  



    Codice corretto 
    Codice PHP:
        <?php
    //Codice PHP:
    $timezone timezone_open('UTC');
    $now date_create("now",$timezone);
    $ora $now->format('Y-m-d H:i:s');
    $today date_create('today',$timezone);
    $oggi $today->format('Y-m-d H:i:s');
    $start = (strlen($row->start) < 5) ? $row->start .'-01-01 00:00:00' $row->start;
    $end = (!empty($row->end) ? ((strlen($row->end) < 5) ? $row->end .'-01-01 00:00:00' $row->end) : $ora); 
    //Quando il file verr incluso o richiesto le variabili diverranno globali al script in uso. 

    ?>




    <?php
    if(isset($row->died) && ($row->died .'-01-01 00:00:00') == $end) {
        echo 
    'fine carriera';
    } elseif(
    $ora == $end) {
        echo 
    'carriera in corso';
    } else {
        echo 
    'abbandono carriera';
    }


    if(isset(
    $row->release_data) || isset($row->year)) {
        
    //differenza film dall'inizio carriera di un'attore
        
    $release_data = isset($row->release_data) ? $row->release_data .' 00:00:00' $row->year .'-01-01 00:00:00';
        
    $diff_film date_create($release_data$timezone)->diff(date_create($start$timezone));
        
    $testo 'In The Business';

        
    $year_film $diff_film->y;
        
    $mese_film $diff_film->m;
        
    $giorni_film $diff_film->d;
            if(
    $year_film) {
                echo 
    '<font color="blue">' $year_film '</font>' '* years *' $testo ;
            } elseif(
    $mese_film == && $giorni_film == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_film) {
                echo 
    '<font color="red">' $mese_film '</font>' '* months *' ;
                if(
    $giorni_film) {
                    echo 
    '<font color="green">' $giorni_film '</font>' '* days *';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_film '</font>' '* days *' $testo;
            }
    }

    if(isset(
    $release_data) && substr($oggi04) == substr($release_data04)) {
        
    //differenza anno corrente film
        
    $diff_current_year date_create($release_data$timezone)->diff(date_create($oggi$timezone));
        
    $testo 'In The Business';

        
    $year_current $diff_current_year->y;
        
    $mese_current $diff_current_year->m;
        
    $giorni_current  $diff_current_year->d;
            if(
    $year_current) {
                echo 
    '<font color="blue">' $year_current '</font>' '* years *' $testo ;
            } elseif(
    $mese_current == && $giorni_current == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_current) {
                echo 
    '<font color="red">' $mese_current '</font>' '* months *' ;
                if(
    $giorni_current) {
                    echo 
    '<font color="green">' $giorni_current '</font>' '* days *';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_current '</font>' '* days *' $testo;
            }
    }  


    ?>
    Se defunto pu solo apparire fine carriera che significa che $row['end'] ha il valore della data del defunto (se non ha terminato in vita la sua carriera).
    Si chiama dead text la colonna del detunto?
    Per favore rispondi alle domande.
    Dal 1980-06-21 a 2020-09-03 la differenza 40 anni.
    Perch stai cambiando in oggetto? Non farlo piuttosto esponi l'errore e il codice lo cambio solo io.
    Ultima modifica di darbula : 03-09-2020 alle ore 16.15.52

  5. #35
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    in realta' non lo avevo inserito quando hai preparato il codice ma e' presente nel database

    ecco i campi


    birthday date <---data di nascita

    died text <---data di morte

    start varchar(10) <----anno inizio carriera, esempio 1990

    end varchar(10) <----fine inizio carriera, esempio 2020

    quindi end non e' data di morte

  6. #36
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    died ovviamente dovr solo essere un array $row['died'] e non $row->died. Cio senza alcuna modifica di tale codice Calcolo tra start release_data
    Praticamente devi rifare tutto daccapo ogni tuo codice confuso, $row['end'] inizialmente se l'attore ha terminato la carriera in vita va definita con tale data altrimenti se non ha terminato in vita senz'altro ha terminato con la data del decesso altrimenti per tua comodit posso applicare la modifica via php quando creo la variabile $end ma il concetto purtroppo rimane quello.
    Ultima modifica di darbula : 03-09-2020 alle ore 16.43.38

  7. #37
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito



    Parse error: syntax error, unexpected ')', expecting ']' in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1717

    Codice PHP:

    $end 
    = (!empty($row['died']) ? ((strlen($row['died']) < 5) ? $row['died'] .'-01-01 00:00:00' $row['died') : $ora); 

  8. #38
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Sostituisci la parentesi di chiusura tonda con la parentesi di chiusura quadra ]
    Codice aggiornato.
    Codice PHP:
    $timezone timezone_open('UTC');
    $now date_create("now",$timezone);
    $ora $now->format('Y-m-d H:i:s');
    $today date_create('today',$timezone);
    $oggi $today->format('Y-m-d H:i:s');
    $start = (strlen($row['start']) < 5) ? $row['start'].'-01-01 00:00:00' $row['start'];
    $end = (!empty($row['end']) ? ((strlen($row['end']) < 5) ? $row['end'].'-01-01 00:00:00' $row['end']) : ((isset($row['dead'])) ?$row['dead'].' 00:00:00' $ora));
    if(isset(
    $row['dead']) && ($row['dead'].' 00:00:00') == $end) {
        echo 
    'fine carriera';
    } elseif(
    $ora == $end) {
        echo 
    'carriera in corso';
    } else {
        echo 
    'abbandono carriera';
    }

    //recupero ultimo valore di $row['release_data'] o $row['year'], significa se sei nel loop dovrai inserire l'intero codice all'ultima iterazione o dopo che avr finito tutte le iterazioni.
    if(isset($row['release_data']) || isset($row['year'])) {
        
    //differenza film dall'inizio carriera di un'attore
        
    $release_data = isset($row['release_data']) ? $row['release_data'].' 00:00:00' $row['year'].'-01-01 00:00:00';
        
    $diff_film date_create($release_data$timezone)->diff(date_create($start$timezone));
        
    $testo 'In The Business';

        
    $year_film $diff_film->y;
        
    $mese_film $diff_film->m;
        
    $giorni_film $diff_film->d;
            if(
    $year_film) {
                echo 
    '<font color="blue">' $year_film '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_film == && $giorni_film == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_film) {
                echo 
    '<font color="red">' $mese_film '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_film) {
                    echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;' $testo;
            }
    }

    if(isset(
    $release_data) && substr($oggi04) == substr($release_data04)) {
        
    //differenza anno corrente film
        
    $diff_current_year date_create($release_data$timezone)->diff(date_create($oggi$timezone));
        
    $testo 'In The Business';

        
    $year_current $diff_current_year->y;
        
    $mese_current $diff_current_year->m;
        
    $giorni_current  $diff_current_year->d;
            if(
    $year_current) {
                echo 
    '<font color="blue">' $year_current '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_current == && $giorni_current == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_current) {
                echo 
    '<font color="red">' $mese_current '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_current) {
                    echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;' $testo;
            }

    $row['dead'] dovr essere con yyyy-mm-dd trasformato in una sequenza temporale operazione che effettuo nel mio codice.
    Ultima modifica di darbula : 03-09-2020 alle ore 18.56.24

  9. #39
    GraphOGLRisorse non  connesso AlterGuru
    Data registrazione
    14-02-2015
    Messaggi
    1,772

    Predefinito

    In realt, non la parenstesi rotonda che al poasto di quella chiusa di $row['died'], ma quella quadra di ciusura che manca.
    Codice PHP:
    $end = (!empty($row['died']) ? ((strlen($row['died']) < 5) ? $row['died'] .'-01-01 00:00:00' $row['died']) : $ora); 
    Cordiali saluti.

  10. #40
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Va beh per nel mio codice originale non esiste problema di sintassi, solitamente prima testo e poi rendo pubblico il codice.
    Grazie di cuore comunque :)

  11. #41
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    o aggionato con l'ultimo e c'e' sempre il problema che conosciamo se non cambio
    da cosi
    $row['start']
    a cosi
    $row->start

    Fatal error: Cannot use object of type stdClass as array in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1714

  12. #42
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Inserisci var_dump($row['start']); una riga prima del mio codice altrimenti non capisco.

  13. #43
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Inserisci var_dump($row['start']); una riga prima del mio codice altrimenti non capisco.
    ho dovuto cambiare da cosi

    var_dump($row['start']);


    a cosi

    var_dump($row->start);

    risultato


    string(4) "2020"
    Fatal error: Cannot use object of type stdClass as array in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1721

  14. #44
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Vieni in privato altrimenti si riempie il forum pieno di commenti non necessari, poi torniamo qui in pubblico.
    Problema individuato https://www.php.net/manual/en/functi...tch-object.php questa funzione restituisce un'oggetto quindi modificare da array in oggetto per $row se oggetto.
    Codice PHP:
    $timezone timezone_open('UTC');
    $now date_create("now",$timezone);
    $ora $now->format('Y-m-d H:i:s');
    $today date_create('today',$timezone);
    $oggi $today->format('Y-m-d H:i:s');
    $start = ((strlen(($row->start)) < 5) ? ($row->start).'-01-01 00:00:00' : ($row->start));
    $end = (isset($row->end) ? ((strlen(($row->end)) < 5) ? ($row->end).'-01-01 00:00:00' : ($row->end)) : (isset($row->died) ? ($row->died).' 00:00:00' $ora));
    if(isset(
    $row->died) && (($row->died).' 00:00:00') == $end) {
        echo 
    'fine carriera';
    } elseif(
    $ora == $end) {
        echo 
    'carriera in corso';
    } else {
        echo 
    'abbandono carriera';
    }

    //recupero ultimo valore di ($row->release_data) o ($row->year), significa se sei nel loop dovrai inserire l'intero codice all'ultima iterazione o dopo che avr finito tutte le iterazioni.
    if(isset($row->release_data) || isset($row->year)) {
        
    //differenza film dall'inizio carriera di un'attore
        
    $release_data = isset($row->release_data) ? ($row->release_data).' 00:00:00' : ($row->year).'-01-01 00:00:00';
        
    $diff_film date_create($release_data$timezone)->diff(date_create($start$timezone));
        
    $testo 'Testo1';

        
    $year_film $diff_film->y;
        
    $mese_film $diff_film->m;
        
    $giorni_film $diff_film->d;
            if(
    $year_film) {
                echo 
    '<font color="blue">' $year_film '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_film == && $giorni_film == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_film) {
                echo 
    '<font color="red">' $mese_film '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_film) {
                    echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_film '</font>' '&nbsp; days &nbsp;' $testo;
            }
    }

    if(isset(
    $release_data) && substr($oggi04) == substr($release_data04)) {
        
    //differenza anno corrente film
        
    $diff_current_year date_create($release_data$timezone)->diff(date_create($oggi$timezone));
        
    $testo 'Testo2';

        
    $year_current $diff_current_year->y;
        
    $mese_current $diff_current_year->m;
        
    $giorni_current  $diff_current_year->d;
            if(
    $year_current) {
                echo 
    '<font color="blue">' $year_current '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_current == && $giorni_current == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_current) {
                echo 
    '<font color="red">' $mese_current '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_current) {
                    echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_current '</font>' '&nbsp; days &nbsp;' $testo;
            }

    Codice da eseguire insieme la prima parte ma ho scelto di mostrarlo separatamente (ove spero sia pi chiaro)
    Codice PHP:
    if(($compleanno = isset($row->birthday) ? $row->birthday null) {
        
    $diff_birthday date_create($compleanno$timezone)->diff(date_create($ora$timezone));
        
    $testo 'Testo3';

        
    $year_birthday $diff_birthday->y;
        
    $mese_birthday $diff_birthday->m;
        
    $giorni_birthday $diff_birthday->d;
            if(
    $year_birthday) {
                echo 
    '<font color="blue">' $year_birthday '</font>' '&nbsp; years &nbsp;' $testo ;
            } elseif(
    $mese_birthday == && $giorni_birthday == 0) {
                echo 
    'anno corrente';
            } elseif(
    $mese_birthday) {
                echo 
    '<font color="red">' $mese_birthday '</font>' '&nbsp; months &nbsp;' ;
                if(
    $giorni_birthday) {
                    echo 
    '<font color="green">' $giorni_birthday '</font>' '&nbsp; days &nbsp;';
                }
                echo 
    $testo;
            } else {
                echo 
    '<font color="green">' $giorni_birthday '</font>' '&nbsp; days &nbsp;' $testo;
            }

    Ultima modifica di darbula : 04-09-2020 alle ore 01.24.53 Motivo: $row oggetto, fix isset, fix campo died, aggiunto $iniziale, tolto empty e cambiato la stringa testo

  15. #45
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,844

    Predefinito

    Fatal error: Cannot use object of type stdClass as array in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1721
    Codice PHP:
    $row mysql_fetch_object$result 
    Stai leggendo la riga come oggetto, quindi non puoi usarlo come vettore.

    dovrei rifare tutto da capo, non ho certa questa voglia, il codice e' perfettamente funzionante adesso e non lo devo distribuire a nessuno
    un peccato perch ti stai precludendo tutte le funzionalit interessanti delle versioni pi recenti di PHP.

    I suggerimenti che do pi spesso:


  16. #46
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    sempre errore,

    ah il campo e' died non dead

    errore

    Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1719

    linea 1719

    Codice PHP:
    $end = (!empty($row->end) ? ((strlen(($row->end)) < 5) ? ($row->end).'-01-01 00:00:00' : ($row->end)) : ((isset(($row->died))) ?($row->died).' 00:00:00' $ora)); 

  17. #47
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,844

    Predefinito

    Si lamenta del modo in cui usato isset. Probabilmente conviene usare empty e togliere le parentesi inutili:
    Codice PHP:
    $end = !empty($row->end)
         ? (
    strlen($row->end) < $row->end '-01-01 00:00:00' $row->end)
         : (!empty(
    $row->died) ? $row->died ' 00:00:00' $ora); 
    Ultima modifica di mzanella : 03-09-2020 alle ore 18.54.43

    I suggerimenti che do pi spesso:


  18. #48
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Si lamenta del modo in cui usato isset. Probabilmente conviene usare empty e togliere le parentesi inutili:
    Codice PHP:
    $end = !empty($row->end)
         ? (
    strlen($row->end) < $row->end '-01-01 00:00:00' $row->end)
         : (!empty(
    $row->died) ? $row->died ' 00:00:00' $ora


    Parse error: syntax error, unexpected 'if' (T_IF) in E:\OpenServer\domains\localhost\cinema\members\cin ema.php on line 1722


    CODICE

    Codice PHP:

    $timezone 
    timezone_open('UTC');
    $now date_create("now",$timezone);
    $ora $now->format('Y-m-d H:i:s');
    $today date_create('today',$timezone);
    $oggi $today->format('Y-m-d H:i:s');
    $start = ((strlen(($row->start)) < 5) ? ($row->start).'-01-01 00:00:00' : ($row->start));
    $end = (!empty($row->end) ? ((strlen(($row->end)) < 5) ? ($row->end).'-01-01 00:00:00' : ($row->end)) : ((isset(($row->died))) ?($row->died).' 00:00:00' $ora));
    if(isset((
    $row->died)) && (($row->died).' 00:00:00') == $end) {
        echo 
    'fine carriera';
    } elseif(
    $ora == $end) {
        echo 
    'carriera in corso';
    } else {
        echo 
    'abbandono carriera';


  19. #49
    GraphOGLRisorse non  connesso AlterGuru
    Data registrazione
    14-02-2015
    Messaggi
    1,772

    Predefinito

    c' un else if attacato in questo punto:
    Codice PHP:
    } else if($ora == $end) { 
    Cordiali saluti.

  20. #50
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Prova questo Calcolo tra start release_data in php elseif si scrive solamente attaccato.

  21. #51
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Ci sono dei progressi siamo vicini alla soluzione

    birthday: 1970-01-01

    died: 2020-08-01

    start: 2020

    release_data (film) 2020-08-31



    risultato

    carriera in corso :7 months 30 days
    In The Business 3 days In The Business carriera in corso39 years In The Business

    il problema che e' morto e poi perche' e ripetuto carriera in corso e In The Business?

    darbula nell'ultimo codice che hai modificato c'e' un piccolo errore nella variabile all'inizio

    questa

    timezone = timezone_open('UTC');

    cambiata

    $timezone = timezone_open('UTC');

  22. #52
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,844

    Predefinito

    Mancava il punto e virgola
    Codice PHP:
    $end = !empty($row->end)
         ? (
    strlen($row->end) < $row->end '-01-01 00:00:00' $row->end)
         : (!empty(
    $row->died) ? $row->died ' 00:00:00' $ora); 
    Ad ogni modo, elseif e else if sono quasi la stessa cosa: https://www.php.net/manual/en/contro...res.elseif.php. In questo contesto vanno bene entrambi.

    I suggerimenti che do pi spesso:


  23. #53
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Ho modificato in died ricopiare il codice.
    Da $row->start 2020-01-01 a $end 2020-08-01 ($end avr il valore data $row->end se ha smesso in vita altrimenti se mancante ed deceduto $row->died altrimenti se non trova died il momento stesso il now di ora 2020-09-03) sette mesi esatti secondo la rappresentazione umana ma php potrebbe mostrare qualcosa come 6 mesi e 30 giorni .. ovviamente solo timezone UTC altrimenti le date sballano.
    Il primo In the Business si riferisce a differenza carriera di un'attore mentre il secondo a anno corrente dalla data di rilascio a questo momento.
    Ultima modifica di darbula : 03-09-2020 alle ore 19.32.02

  24. #54
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Ho modificato in died.
    Da $row->start 2020-01-01 a $end 2020-08-01 ($end avr il valore data $row->end se ha smesso in vita altrimenti se mancante ed deceduto $row->died altrimenti se non trova died il momento stesso) sette mesi esatti secondo la rappresentazione umana ma php potrebbe mostrare qualcosa come 6 mesi e 30 giorni .. ovviamente solo timezone UTC altrimenti le date sballano.
    Il primo In the Business si riferisce a differenza carriera di un'attore mentre il secondo a anno corrente dalla data di rilascio a questo momento.

    dov'e' il codice modificato?

  25. #55
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

  26. #56
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    ok, sembra che ci siamo


    visualizzo questo

    fine carriera7 months 30 days In The Business3 days In The Business fine carriera39 years In The Business

    39 years In The Business com'e' calcolato questo? contraddice con il primo 3 days In The Business
    Ultima modifica di blackskyisback : 03-09-2020 alle ore 19.37.45

  27. #57
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    C' qualcosa che non va la carriera 7 mesi o 6 mesi 30 giorni.
    Stai usando datetime per il calcolo birthday? Comunque sarebbe da effettuare il calcolo da birthday a died morto a x anni.
    Io penso usi date che funziona da 1970-01-01 e non per date precedenti in realt questo bug f risolto alla versione php 5.1 non capisco perch ancora accada con Windows e versione php 5.6 che tu stai usando.
    Con queste date
    birthday: 1970-01-01

    died: 2020-08-01

    start: 2020

    release_data (film) 2020-08-31

    Carriera da start 2020-01-01 a died 2020-08-01 solo 7 mesi 0 6 mesi e 30 giorni.
    Differenza se anno corrente da release_data 2020-08-31 a 2020-09-03 3 giorni.
    Anni attore da birthday 1970-01-01 a died 2020-08-01 50 anni.
    Ultima modifica di darbula : 04-09-2020 alle ore 01.59.07

  28. #58
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    C' qualcosa che non va la carriera 7 mesi o 6 mesi 30 giorni.
    Stai usando datetime per il calcolo birthday? Comunque sarebbe da effettuare il calcolo da birthday a died morto a x anni.
    Io penso usi date che funziona da 1970-01-01 e non per date precedenti in realt questo bug f risolto alla versione php 5.1 non capisco perch ancora accada con Windows e versione php 5.6 che tu stai usando.
    Con queste date
    birthday: 1970-01-01

    died: 2020-08-01

    start: 2020

    release_data (film) 2020-08-31

    Carriera da start 2020-01-01-01 a died 2020-08-01 7 mesi.
    Differenza se anno corrente da release_data 2020-08-31 a 2020-09-03 3 giorni.
    Anni attore da birthday 1970-01-01 a died 2020-08-01 50 anni.

    si trova un altro codice per calcolare il compleanno, ma e' fuori delle query che stiamo usando adesso, non penso che influisca

  29. #59
    darbula non  connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,158

    Predefinito

    Apri phpmyadmin il campo birthday di quell'attore realmente 1970-01-01 o diverso?
    In php dopo aver cliccato sul nome del database nel riquadro sql puoi inserire la select con la clausola where id di quell'attore. Penso questo riesci a farlo da solo.

  30. #60
    Data registrazione
    29-05-2012
    Messaggi
    209

    Predefinito

    si,e' 1970-01-01, posso cambiare la data di nascita se necessita, tanto e' solo per test

Pagina 2 di 4 PrimoPrimo 1234 UltimoUltimo

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •