1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| <?php
##################################################################### SECTION TETE : PARAMETRAGE AUTORISATION ##########################################################
require_once('libraries/defines.php');
##################################################################### Fin SECTION TETE : PARAMETRAGE AUTORISATION ######################################################
##################################################################### SECTION MODELE ###################################################################################
connect();
function getChildren($parentId) {
global $db;
$dateFormat = LOCAL_DATE_FORMAT;
$query = "
SELECT id, last_name, first_name, IFNULL(DATE_FORMAT(birth_date, '$dateFormat'), NULL) as birthdate, IFNULL(DATE_FORMAT(death_date, '$dateFormat'), NULL) AS deathdate
FROM dat_persons
WHERE father_id=:parentId OR mother_id=:parentId
ORDER BY birth_date
";
$result = $db->prepare($query);
$result->bindParam('parentId', $parentId);
$result->execute();
return $result->fetchAll();
}
##################################################################### FIN section MODELE ###############################################################################
##################################################################### SECTION CONTROLE #################################################################################
/*
function fetch_liste_enfant(PDO $db, $parent_id=0, $ol='', $tabul=-1){
$sql = "
SELECT id, last_name, first_name, DATE_FORMAT(birth_date, '%d/%m/%Y') as birthdate, IFNULL(DATE_FORMAT(death_date, '%d/%m/%Y'), NULL) AS deathdate
FROM dat_persons
WHERE father_id=$parent_id OR mother_id=$parent_id
ORDER BY birth_date
";
$stmt = $db->query($sql);
$data=$stmt->fetchAll();
if(isset($data[0])){//si enfant(s) seulement
$tabul++;
$indentation='';
for($i=0;$i<$tabul;$i++){
$indentation .="\t";
}
$ol .= $indentation."<ol>\n";
$indentation_li =$indentation."\t";
foreach($data as $row){
//$ol .= $indentation_li."<li>". $row['nom']." ".$row['prenom']." ".$row['naissance_fr'].($row['deces_fr']==""?NULL:" - ".$row['deces_fr'])."</li>\n";
$ol .= $indentation_li."<li>". $row['last_name']." ".$row['first_name']." ".$row['birthdate'].($row['deathdate']==""?NULL:" - ".$row['deathdate'])."</li>\n";
$ol = fetch_liste_enfant($db,$row['id'], $ol,$tabul);
}
$ol .= $indentation."</ol>\n";
}
return $ol;
}
*/
function getDescent($parentId, $ol='', $tab=-1)
{
$data = getChildren($parentId);
if(isset($data[0])){ //si enfant(s) seulement
$tab++;
$indent='';
for ($i=0; $i<$tab; $i++) {
$indent .= "\t";
}
$ol .= $indent."<ol>\n";
$indent_li = $indent."\t";
foreach ($data as $row) {
//$ol .= $indent_li."<li>".$row['last_name']." ".$row['first_name']." ".($row['birthdate']==""?NULL:" - ".$row['birthdate']).($row['deathdate']==""?NULL:" - ".$row['deathdate'])."</li>\n";
//$ol .= $indent_li."<li>".$row->last_name." ".$row->first_name." ".($row->birthdate==""?NULL:" - ".$row->birthdate).($row->deathdate==""?NULL:" - ".$row->deathdate)."</li>\n";
$ol .= "$indent_li<li>$row->last_name $row->first_name ".($row->birthdate==''?NULL:' - '.$row->birthdate).($row->deathdate==''?NULL:' - '.$row->deathdate)."</li>\n";
$ol = getDescent($row->id, $ol, $tab);
}
$ol .= $indent."<ol>\n";
}
return $ol;
}
// ...........................................................................................
if ( ! $idMain = (int) $_GET['idMain']) {
header('location: '.DEFAULT_PAGE);
exit;
}
$idMain = 50; // Pour test uniquement
$recursiveList = getDescent($idMain);
echo $recursiveList; |
Partager