Sélection d'affichage
Résolu
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
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