|  | @@ 263-275 (lines=13) @@ | 
                                                            
                                    | 260 |  |      * | 
                                                            
                                    | 261 |  |      * @return array Associative array of Sosa ancestors, with their generation, comma separated | 
                                                            
                                    | 262 |  |      */ | 
                                                            
                                    | 263 |  |     public function getAllSosaWithGenerations(){ | 
                                                            
                                    | 264 |  |         if(!$this->is_setup) return array(); | 
                                                            
                                    | 265 |  |         return Database::prepare( | 
                                                            
                                    | 266 |  |             'SELECT majs_i_id AS indi,' . | 
                                                            
                                    | 267 |  |             ' GROUP_CONCAT(DISTINCT majs_gen ORDER BY majs_gen ASC SEPARATOR ",") AS generations' . | 
                                                            
                                    | 268 |  |             ' FROM `##maj_sosa`' . | 
                                                            
                                    | 269 |  |             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id' . | 
                                                            
                                    | 270 |  |             ' GROUP BY majs_i_id' | 
                                                            
                                    | 271 |  |         )->execute(array( | 
                                                            
                                    | 272 |  |             'tree_id' => $this->tree->getTreeId(), | 
                                                            
                                    | 273 |  |             'user_id' => $this->user->getUserId() | 
                                                            
                                    | 274 |  |         ))->fetchAssoc(); | 
                                                            
                                    | 275 |  |     } | 
                                                            
                                    | 276 |  |      | 
                                                            
                                    | 277 |  |     /** | 
                                                            
                                    | 278 |  |      * Get an associative array of Sosa individuals in generation G. Keys are Sosa numbers, values individuals. | 
                                                                                
                                |  | @@ 445-456 (lines=12) @@ | 
                                                            
                                    | 442 |  |      * @param number $gen Generation | 
                                                            
                                    | 443 |  |      * @return number Number of Sosas in generation | 
                                                            
                                    | 444 |  |      */ | 
                                                            
                                    | 445 |  |     public function getSosaCountAtGeneration($gen){ | 
                                                            
                                    | 446 |  |         if(!$this->is_setup) return 0; | 
                                                            
                                    | 447 |  |         return Database::prepare( | 
                                                            
                                    | 448 |  |             'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' . | 
                                                            
                                    | 449 |  |             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'. | 
                                                            
                                    | 450 |  |             ' AND majs_gen= :gen') | 
                                                            
                                    | 451 |  |         ->execute(array( | 
                                                            
                                    | 452 |  |                 'tree_id' => $this->tree->getTreeId(),  | 
                                                            
                                    | 453 |  |                 'user_id' => $this->user->getUserId(), | 
                                                            
                                    | 454 |  |                 'gen' => $gen             | 
                                                            
                                    | 455 |  |         ))->fetchOne() ?: 0; | 
                                                            
                                    | 456 |  |     } | 
                                                            
                                    | 457 |  |      | 
                                                            
                                    | 458 |  |     /** | 
                                                            
                                    | 459 |  |      * Get the total number of Sosa up to a specific generation. | 
                                                                                
                                |  | @@ 464-475 (lines=12) @@ | 
                                                            
                                    | 461 |  |      * @param number $gen Generation | 
                                                            
                                    | 462 |  |      * @return number Total number of Sosas up to generation | 
                                                            
                                    | 463 |  |      */ | 
                                                            
                                    | 464 |  |     public function getSosaCountUpToGeneration($gen){ | 
                                                            
                                    | 465 |  |         if(!$this->is_setup) return 0; | 
                                                            
                                    | 466 |  |         return Database::prepare( | 
                                                            
                                    | 467 |  |             'SELECT SQL_CACHE COUNT(majs_sosa) FROM `##maj_sosa`' . | 
                                                            
                                    | 468 |  |             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'. | 
                                                            
                                    | 469 |  |             ' AND majs_gen <= :gen') | 
                                                            
                                    | 470 |  |         ->execute(array( | 
                                                            
                                    | 471 |  |                 'tree_id' => $this->tree->getTreeId(),  | 
                                                            
                                    | 472 |  |                 'user_id' => $this->user->getUserId(), | 
                                                            
                                    | 473 |  |                 'gen' => $gen  | 
                                                            
                                    | 474 |  |         ))->fetchOne() ?: 0; | 
                                                            
                                    | 475 |  |     } | 
                                                            
                                    | 476 |  |      | 
                                                            
                                    | 477 |  |     /** | 
                                                            
                                    | 478 |  |      * Get the total number of distinct Sosa individual for all generations. | 
                                                                                
                                |  | @@ 499-510 (lines=12) @@ | 
                                                            
                                    | 496 |  |      * @param number $gen Generation | 
                                                            
                                    | 497 |  |      * @return number Number of distinct Sosa individuals up to generation | 
                                                            
                                    | 498 |  |      */ | 
                                                            
                                    | 499 |  |     public function getDifferentSosaCountUpToGeneration($gen){ | 
                                                            
                                    | 500 |  |         if(!$this->is_setup) return 0; | 
                                                            
                                    | 501 |  |         return Database::prepare( | 
                                                            
                                    | 502 |  |             'SELECT SQL_CACHE COUNT(DISTINCT majs_i_id) FROM `##maj_sosa`' . | 
                                                            
                                    | 503 |  |             ' WHERE majs_gedcom_id=:tree_id AND majs_user_id=:user_id'. | 
                                                            
                                    | 504 |  |             ' AND majs_gen <= :gen') | 
                                                            
                                    | 505 |  |         ->execute(array( | 
                                                            
                                    | 506 |  |                 'tree_id' => $this->tree->getTreeId(),  | 
                                                            
                                    | 507 |  |                 'user_id' => $this->user->getUserId(), | 
                                                            
                                    | 508 |  |                 'gen' => $gen  | 
                                                            
                                    | 509 |  |         ))->fetchOne() ?: 0; | 
                                                            
                                    | 510 |  |     } | 
                                                            
                                    | 511 |  |      | 
                                                            
                                    | 512 |  |     /** | 
                                                            
                                    | 513 |  |      * Get an array of birth statistics for a specific generation |