Sélection d'affichage
Résolu
t671
Messages postés
1632
Statut
Membre
-
t671 Messages postés 1632 Statut Membre -
t671 Messages postés 1632 Statut Membre -
Bonjour,
J'ai une partie de script qui m'extrait des date de mariage pour 4 conjoints éventuels.
Je ne voudrais afficher que les 4 derniers caractères, soit l'année.
Mais je n'arrive pas à modifier cette partie de script dans ce sens.
date_mariage_1,2,3,4 correspond à la date de mariage extraite de la base.
La date peut être précédée de "Avant", "Après", "Vers".
num_cj_1,2,3,4 correspond au numéro du conjoint.
echo 'X : '.$tonarray[$i]['date_mariage'].''; => affiche la date de mariage complète, alors que je ne voudrais afficher que les 4 derniers caractères qui correspondent à "$marg_1 = substr($row4['date_mariage_1'], -4);" (idem pour 2,3 et 4).
Merci si vous pouvez m'aider.
J'ai une partie de script qui m'extrait des date de mariage pour 4 conjoints éventuels.
Je ne voudrais afficher que les 4 derniers caractères, soit l'année.
Mais je n'arrive pas à modifier cette partie de script dans ce sens.
$tonarray = array($link);
if (!empty($row4['date_mariage_1']))
{
$marg_1 = substr($row4['date_mariage_1'], -4);
$date_marg1 = explode (" ",$row4['date_mariage_1']);
if ($date_marg1[0] == "Avant")
{ $marg_1 = $marg_1 - 1 ; }
if ($date_marg1[0] == "Après" || $date_marg1[0] == "Entre" || $date_marg1[0] == "Vers")
{ $marg_1 = $marg_1 + 1 ; }
}
if (!empty($row4['date_mariage_2']))
{
$marg_2 = substr($row4['date_mariage_2'], -4);
$date_marg2 = explode (" ",$row4['date_mariage_2']);
if ($date_marg2[0] == "Avant")
{ $marg_2 = $marg_2 - 1 ; }
if ($date_marg2[0] == "Après" || $date_marg2[0] == "Entre" || $date_marg2[0] == "Vers")
{ $marg_2 = $marg_2 + 1 ; }
}
if (!empty($row4['date_mariage_3']))
{
$marg_3 = substr($row4['date_mariage_3'], -4);
$date_marg3 = explode (" ",$row4['date_mariage_3']);
if ($date_marg3[0] == "Avant")
{ $marg_3 = $marg_3 - 1 ; }
if ($date_marg3[0] == "Après" || $date_marg3[0] == "Entre" || $date_marg3[0] == "Vers")
{ $marg_3 = $marg_3 + 1 ; }
}
if (!empty($row4['date_mariage_4']))
{
$marg_4 = substr($row4['date_mariage_4'], -4);
$date_marg4 = explode (" ",$row4['date_mariage_4']);
if ($date_marg4[0] == "Avant")
{ $marg_4 = $marg_4 - 1 ; }
if ($date_marg4[0] == "Après" || $date_marg4[0] == "Entre" || $date_marg4[0] == "Vers")
{ $marg_4 = $marg_4 + 1 ; }
}
$tonarray[0]=array("mariage" => '$marg_1' ,"date_mariage" => $row4['date_mariage_1'] , "conjoint" => $row4['num_cj_1'] , "acte_mariage" => $row4['acte_mariage_1']);
$tonarray[1]=array("mariage" => '$marg_2' ,"date_mariage" => $row4['date_mariage_2'] , "conjoint" => $row4['num_cj_2'] , "acte_mariage" => $row4['acte_mariage_2']);
$tonarray[2]=array("mariage" => '$marg_3' ,"date_mariage" => $row4['date_mariage_3'] , "conjoint" => $row4['num_cj_3'] , "acte_mariage" => $row4['acte_mariage_3']);
$tonarray[3]=array("mariage" => '$marg_4' ,"date_mariage" => $row4['date_mariage_4'] , "conjoint" => $row4['num_cj_4'] , "acte_mariage" => $row4['acte_mariage_4']);
sort($tonarray);
for($i=0; $i<=3; $i++)
{
if ($tonarray[$i]['conjoint'] != "")
{
$query44 = 'SELECT * FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' ';
$result44 = mysqli_query($link,$query44) or die(mysqli_error($link));
$row44 = mysqli_fetch_array($result44);
echo 'X : '.$tonarray[$i]['date_mariage'].'';
date_mariage_1,2,3,4 correspond à la date de mariage extraite de la base.
La date peut être précédée de "Avant", "Après", "Vers".
num_cj_1,2,3,4 correspond au numéro du conjoint.
echo 'X : '.$tonarray[$i]['date_mariage'].''; => affiche la date de mariage complète, alors que je ne voudrais afficher que les 4 derniers caractères qui correspondent à "$marg_1 = substr($row4['date_mariage_1'], -4);" (idem pour 2,3 et 4).
Merci si vous pouvez m'aider.
2 réponses
Bonjour,
Je pense qu'il y a là .. une petite erreur de conception de ta BDD..
Plus exactement....
1 - Une date, se stocke, dans une BDD, dans un champ de type DATE (et donc au format Y-m-d )
2 - Si il te faut l'information... AVANT .. APRES.... tu n'as qu'à ajouter une CHAMP supplémentaire dans ta table pour l'y mettre
3 - Une fois ces corrections faites, tu pourras alors, sans difficulté, récupérer l'année directement via ta REQUETE ... grâce à la fonction YEAR
par exemple :
Je pense qu'il y a là .. une petite erreur de conception de ta BDD..
Plus exactement....
date_mariage_1,2,3,4 correspond à la date de mariage extraite de la base.
La date peut être précédée de "Avant", "Après", "Vers".
1 - Une date, se stocke, dans une BDD, dans un champ de type DATE (et donc au format Y-m-d )
2 - Si il te faut l'information... AVANT .. APRES.... tu n'as qu'à ajouter une CHAMP supplémentaire dans ta table pour l'y mettre
3 - Une fois ces corrections faites, tu pourras alors, sans difficulté, récupérer l'année directement via ta REQUETE ... grâce à la fonction YEAR
par exemple :
SELECT YEAR(champdate) as ANNEE FROM tatable