Anno mesi giorni

rieccomi, tra impegni e altro ho effettuato un po' di test ed ecco i risultati

Caso 1:
il codice calcola la differenza tra release_data (tabella film) e start (tabella actor),
il risultato e' giusto


sshot-1.png


Caso 2:
il codice calcola la differenza tra release_data (tabella film) e start (tabella actor),
in questo caso vengono visualizzati 2 risultati perche'i film sono 2, ma non dovrebbe accadere, il codice dovrebbe calcolare solo
la differenza tra start e la data attuale (year)


sshot-2.png


Caso 3:
il codice calcola la differenza tra release_data (tabella film) e start (tabella actor), ma non e' presente nessun film quindi il risultato e' vuoto, il risultato dovrebbe essere come il Caso 2, differenza tra start e data attuale (year)


sshot-3.png


ecco il codice, non ho sperimentato ancora la differenza tra start (tabella actor) ed end (tabella actor)

PHP:
<?php            


require_once("connetti.php");



$actor_id = $_GET['id'];



//Recupera i film di un attore
$query = "SELECT
film.release_data as release_data,
film.year as year,
actor.end as end,
actor.start as start
FROM film_actor
INNER JOIN film ON film.film_id = film_actor.film_id
INNER JOIN actor ON actor.actor_id = film_actor.actor_id
WHERE film_actor.actor_id = " . $actor_id . ' AND film_actor.film_id IS NOT NULL';



$results = mysql_query( $query );
if (!$results)
die("mySQL error: ". mysql_error());
while( $rows = mysql_fetch_array( $results ) ) : ?>  



<?php
error_reporting(-1);

// code In The Business calcola i mesi e giorni trascorsi in caso l'anno e' attuale, esempio: 2020 + update calcolo anno
// by Hormus Mr. Webmaster Forum 2020.07.10

$out_start = $rows['start'];
if(!empty($rows['release_data'])) {
    $out_start = $rows['release_data'];
}
$timezone = timezone_open("UTC");
$now = date_create("now",$timezone);
$start = (!empty($rows['release_data']) ? strtr($rows['release_data'], '.', '-') : ((strlen($rows['start']) < 5) ? "{$rows['start']}-01-01 00:00:00" : $rows['start']));
$end = (!empty($rows['end']) ? ((strlen($rows['end']) < 5) ? "{$rows['end']}-01-01 00:00:00" : $rows['end']) : ($now->format("Y-m-d H:i:s")));
$diff = date_create($end, $timezone)->diff( date_create($start, $timezone) );


$testo = 'In The Business';

$year = $diff->y;
$mese = $diff->m;
$giorni = $diff->d;
if($year) {
    echo '<font color="blue">' . $year . '</font>' . '&nbsp; years &nbsp;' . $testo ;
} elseif($mese == 0 && $giorni == 0) {
    echo 'anno corrente';
} elseif($mese) {
    echo '<font color="red">' . $mese . '</font>' . '&nbsp; months &nbsp;' ;
        if($giorni) {
            echo '<font color="green">' . $giorni . '</font>' . '&nbsp; days &nbsp;';
        }
    echo $testo;
} else {
    echo '<font color="green">' . $giorni . '</font>' . '&nbsp; days &nbsp;' . $testo;
}
   

?>

<? endwhile; ?>  

<?php
if(!empty($row['start'])) { echo "<p class=\"bioheading\">Start</p><p  class=\"biodata\">" . $row['start'] . "</p>"; }

?>




<?php
if(!empty($row['end'])) { echo "<p class=\"bioheading\">End</p><p  class=\"biodata\">" . $row['end'] . "</p>"; }

?>
 

Discussioni simili