Pagina 2 di 5 PrimoPrimo 1234 ... UltimoUltimo
Visualizzazione risultati 31 fino 60 di 130
Like Tree3Likes

Discussione: Calcolo tra start release_data

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

    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
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 == 0 && $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($oggi, 0, 4) == substr($release_data, 0, 4)) {
    //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 == 0 && $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 15.04.42

  3. #33
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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 == 0 && $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($oggi, 0, 4) == substr($release_data, 0, 4)) {
    //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 == 0 && $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 15.15.52

  5. #35
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    died ovviamente dovrà solo essere un array $row['died'] e non $row->died. Cioè senza alcuna modifica di tale codice http://forum.it.altervista.org/php-m...ml#post1454813
    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 15.43.38

  7. #37
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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 == 0 && $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($oggi, 0, 4) == substr($release_data, 0, 4)) {
    //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 == 0 && $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 17.56.24

  9. #39
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

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

  13. #43
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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 == 0 && $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($oggi, 0, 4) == substr($release_data, 0, 4)) {
    //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 == 0 && $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 == 0 && $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 00.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,954

    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
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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,954

    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) < 5 ? $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 17.54.43

    I suggerimenti che do più spesso:


  18. #48
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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) < 5 ? $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 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

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

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

    Predefinito

    Prova questo http://forum.it.altervista.org/php-m...ml#post1455014 in php elseif si scrive solamente attaccato.

  21. #51
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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,954

    Predefinito

    Mancava il punto e virgola
    Codice PHP:
    $end = !empty($row->end)
    ? (
    strlen($row->end) < 5 ? $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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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 18.32.02

  24. #54
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

  26. #56
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 18.37.45

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

    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 00.59.07

  28. #58
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    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 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    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
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

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

Pagina 2 di 5 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
  •