Je suis très novice en php/Mysql, je me débrouille un peu pour changer certaines choses par essais/erreurS mais je ne suis pas compétente au point de pouvoir écrire moi-même des codes qui pourraient s'exécuter.
J'utilise un script, très bien fait, pour une énorme base de données généalogiques. Le script est TNG (http://lythgoes.net/genealogy/software.php) et mon site est ici :
http://www.genhcn.net/genealogie
Voici mon problème. Avec ce script, on peut générer des "reports", un de ces "reports" est de pouvoir classer les familles, des plus nombreuses aux moins nombreuses, à l'aide de ce script dans l'espace administration. J'étais un peu familière avec le php avant la v.4, imaginez où j'en suis avec la version 5, complètement perdue. Première fois que je voyais l'expression "concat", donc, je suis loin d'être une pro.
Code : Tout sélectionner
SELECT concat('<a href="familygroup.php?familyID=',f.familyid, 'genhcn', f.gedcom,'">', f.familyid,'</a>') as familyid,
concat('<a href="familygroup.php?familyID=',f.familyid, 'genhcn', f.gedcom,'">', if(isnull(h.lastname), ' ',h.lastname),'/ ',
if(isnull(w.lastname), ' ',w.lastname),'</a>') as FamilyName, count(c.personid) as Size,
group_concat(ch.firstname order by ordernum separator '- ') as Children,
concat('<a href="getperson.php?personID=',f.husband,'genhcn', f.gedcom,'">',h.firstname,' ',h.lastname,'</a>') as Père,
concat('<a href="getperson.php?personID=',f.wife,'genhcn', f.gedcom,'">',w.firstname,' ',w.lastname,'</a>') as Mère,
f.marrdate, f.marrplace, f.branch as Branch FROM tng_families as f
left join tng_people as h on f.gedcom = h.gedcom and f.husband = h.personid
left join tng_people as w on f.gedcom=w.gedcom and f.wife = w.personid
left join tng_children as c on f.gedcom=c.gedcom and f.familyid = c.familyid
left join tng_people as ch on f.gedcom=ch.gedcom and c.personid = ch.personid
WHERE f.gedcom = 'genhcn'
group by c.gedcom,c.familyid
order by Size desc, h.lastname,w.lastname,h.firstname, w.firstnameCela nous génére une page, côté administratif. Ce que j'aimerais, ça serait avoir ce script afin d'en faire un include sur ma page d'accueil mais seulement les 10 familles les plus nombreuses ou encore, les familles ayant plus de 17 enfants par exemple.
Voici un exemple de la page généré par le "report", en jaune, ce que j'aimerais conserver.

Ci-joint, la structure des deux tables probablement concernées par ce code, enfin, j'espère que je n'en oublie pas.
CREATE TABLE IF NOT EXISTS `tng_families` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`gedcom` varchar(20) NOT NULL,
`familyID` varchar(22) NOT NULL,
`husband` varchar(22) NOT NULL,
`wife` varchar(22) NOT NULL,
`marrdate` varchar(50) NOT NULL,
`marrdatetr` date NOT NULL,
`marrplace` text NOT NULL,
`marrtype` varchar(50) NOT NULL,
`divdate` varchar(50) NOT NULL,
`divdatetr` date NOT NULL,
`divplace` text NOT NULL,
`status` varchar(20) NOT NULL,
`sealdate` varchar(50) NOT NULL,
`sealdatetr` date NOT NULL,
`sealplace` text NOT NULL,
`husborder` tinyint(4) NOT NULL,
`wifeorder` tinyint(4) NOT NULL,
`changedate` datetime DEFAULT NULL,
`living` tinyint(4) NOT NULL,
`private` tinyint(4) NOT NULL,
`branch` varchar(100) NOT NULL,
`changedby` varchar(20) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `familyID` (`gedcom`,`familyID`),
KEY `husband` (`gedcom`,`husband`),
KEY `wife` (`gedcom`,`wife`),
KEY `changedate` (`changedate`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14774 ;
CREATE TABLE IF NOT EXISTS `tng_children` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`gedcom` varchar(20) NOT NULL,
`familyID` varchar(22) NOT NULL,
`personID` varchar(22) NOT NULL,
`frel` varchar(20) NOT NULL,
`mrel` varchar(20) NOT NULL,
`sealdate` varchar(50) NOT NULL,
`sealdatetr` date NOT NULL,
`sealplace` text NOT NULL,
`haskids` tinyint(4) NOT NULL,
`ordernum` smallint(6) NOT NULL,
`parentorder` tinyint(4) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `familyID` (`gedcom`,`familyID`,`personID`),
KEY `personID` (`gedcom`,`personID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31063 ;
Une âme charitable pour m'aider avec ce fichu code?
Du moins, des indices comment l'utiliser. J'ai fouillé mais je n'y comprend strictement rien.
Merci!