0) { $sp_Chaine=$sp_NouveauMot." ".substr($sp_Chaine,0,strpos($sp_Chaine,$sp_Mot)).substr(strchr($sp_Chaine,$sp_Mot),strlen($sp_Mot)); return 1; } else if ("$n_PosMot" == "") return 0; else { $sp_Chaine=$sp_NouveauMot.substr($sp_Chaine,strlen($sp_Mot)); return 1; } } function F_AfficherMutation($op_Couple,$sp_Sexe,$sp_MutTyp,$sp_MutVal,$sp_Option,$sp_OptVal,$sp_NomEspece,$s_Connexion) { $s_NomVarMut=$sp_Sexe.'_'.$sp_MutTyp.$sp_OptVal; $s_NomVarOption=$s_NomVarMut.'_opt'; $s_MutTyp=strtoupper($sp_MutTyp); unset($b_Checked1); unset($b_Checked2); if ($sp_MutVal!='NULL' and $sp_MutVal != "") { $s_MutCod=substr($sp_MutVal,0,strpos($sp_MutVal,':')); $s_MutLib=substr($sp_MutVal,strpos($sp_MutVal,':')+1); if (isset($sp_Option)) { switch ($sp_Option) { case "1" : $b_Checked1=" CHECKED"; break; case "2" : $b_Checked2=" CHECKED"; break; } } else { $b_Checked2=" CHECKED"; } } else { unset($sp_MutVal); } if (isset($sp_MutVal)) { $s_Resultat = sF_ResultatRequete("SELECT photo_rep,photo_haut,photo_larg,photo,docum_rep,documentation FROM mutation m,espece e WHERE e.espec_cod = '".$sp_NomEspece."' AND m.espec_cod = '".$sp_NomEspece."' AND mutat_cod = '$s_MutCod';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $s_Photo=$s_Objet->photo; $s_Documentation=$s_Objet->documentation; $s_PhotoRep=$s_Objet->photo_rep; $n_PhotoHaut=$s_Objet->photo_haut+40; $n_PhotoLarg=$s_Objet->photo_larg+40; $s_DocumentationRep=$s_Objet->docum_rep; print "\n"; if (file_exists($s_PhotoRep.'/'.nvl($s_Photo,"Pas de photo !!!"))) { F_AfficherIconeCalculateur($s_PhotoRep,$s_Photo,$s_Photo,''); } //print "".$s_MutLib.""; //print ''."\n"; if (file_exists($s_DocumentationRep.'/'.nvl($s_Documentation,'Pas de document !!!'))) print ''.$s_MutLib.''."\n"; print "\n"; } else print "\n"; print "\n"; switch ($sp_MutTyp) { case "do" : print "
\n"; print ""; break; case "in" : print "
\n"; print "
\n"; print ""; break; case "se" : print "
\n"; if ($sp_Sexe=="m") { print "
\n"; } else { print ""; } break; case "re" : print "
\n"; print "
\n"; break; } if ($s_MutLib != "") { if ($sp_Option == "2") { $op_Couple[$sp_Sexe]=$op_Couple[$sp_Sexe]." ".$s_MutLib; #print "-> ".$sp_Sexe.":".$s_MutLib.":".$sp_Option."\n"; if ($s_MutTyp == "IN") { $op_Couple[$sp_Sexe]=$op_Couple[$sp_Sexe]."(df)"; } } else { if ($s_MutTyp == "IN") { $op_Couple[$sp_Sexe]=$op_Couple[$sp_Sexe]." ".$s_MutLib; $op_Couple[$sp_Sexe]=$op_Couple[$sp_Sexe]."(sf)"; } } # print "Male=".$op_Couple[m]." et Femelle=".$op_Couple[f]."\n"; } } function nF_StockerChoix(&$op_TabMut,&$op_TabTypMut,&$op_TabMal,&$op_TabFem,&$sp_MutVal,&$sp_OptVal,$sp_TypMut,$np_Sexe) { # # op_TabSexe # ---------- # 1 = 0.1 # 2 = 1.0 # 0 = 1.0 + 0.1 $i=0; #if (isset($sp_MutVal) and isset($sp_OptVal)) //print "===================== :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; if (isset($sp_MutVal)) { if (($sp_MutVal != "NULL") and ($sp_MutVal != '')) { while (($i <= count($op_TabMut)) and ($op_TabMut[$i] != $sp_MutVal)) { $i=$i+1; } if ($i > count($op_TabMut)) { $op_TabTypMut[$i]=$sp_TypMut; $op_TabMut[$i]=$sp_MutVal; if ($np_Sexe == 0) { //print "...... 1 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $op_TabFem[$i]=$sp_OptVal; $op_TabMal[$i]=0; return 1; } else { //print "...... 2 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $op_TabFem[$i]=0; $op_TabMal[$i]=$sp_OptVal; return 1; } } else { if ($np_Sexe == 0 and $op_TabFem[$i] == 0) { //print "...... 3 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $op_TabFem[$i]=$sp_OptVal; return 1; } else { if ($np_Sexe == 1 and $op_TabMal[$i] == 0) { //print "...... 4 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $op_TabMal[$i]=$sp_OptVal; return 1; } else { //print "...... 5 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $sp_MutVal=""; $sp_OptVal=""; return 0; } } } } else { //print "...... 6 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $sp_MutVal=""; $sp_OptVal=""; return 0; } } else { //print "...... 7 :".$sp_TypMut.".".$sp_MutVal.".".$sp_OptVal.".".count($op_TabMut)."
"; $sp_MutVal=""; $sp_OptVal=""; return 0; } } function sF_Mutation(&$sp_Aspect,$sp_Porteur,$op_TabCouleur) { $s_Aspect=$sp_Aspect; $s_Porteur=$sp_Porteur; if ($op_TabCouleur->color_num[count($op_TabCouleur->mutat_lib)] == 1) $n_NbCouleur=sF_Nom($s_Aspect,$op_TabCouleur->mutat_lib[count($op_TabCouleur->mutat_lib)],''); if ($s_Porteur!="") { #s_Porteur=substr($s_Porteur,1,strlen($s_Porteur); $n_NbCouleur=0; for ($i=1;$i<=count($op_TabCouleur->mutat_lib);$i++) { if ($op_TabCouleur->porteur[$i] != 'NULL' and $op_TabCouleur->porteur[$i] != '' ) { $n_NbCouleur=0; # Cas des co_dominants (/porteur devient Aspect) if (sF_Nom($s_Porteur,$op_TabCouleur->porteur[$i],'')) $s_Aspect=$op_TabCouleur->mutat_lib[$i]." ".$s_Aspect; } else { $n_NbCouleur=$n_NbCouleur+sF_Nom($s_Porteur,'/'.$op_TabCouleur->mutat_lib[$i],'/'.$op_TabCouleur->mutat_lib[$i]); } } } $n_NbCouleurMajeur=0; $n_NbCouleur=0; for ($i=1;$i<=count($op_TabCouleur->mutat_lib);$i++) { # Cas des noms particluiers de mutation sur l'aspect if ($op_TabCouleur->aspect[$i] != 'NULL' and $op_TabCouleur->aspect[$i] != '' ) $s_Couleur=$op_TabCouleur->aspect[$i]; else $s_Couleur=$op_TabCouleur->mutat_lib[$i]; if ($op_TabCouleur->color_num[$i] < 100) { // print "\n
".$s_Aspect." : ".$op_TabCouleur->mutat_lib[$i]; $n_NbCouleurMajeur=$n_NbCouleurMajeur+sF_Nom($s_Aspect,$s_Couleur,$op_TabCouleur->mutat_lib[$i]); } else $n_NbCouleur=$n_NbCouleur+sF_Nom($s_Aspect,$s_Couleur,$op_TabCouleur->mutat_lib[$i]); } # # Si pas de couleur majeur : Ajout de la couleur la plus forte # if ($n_NbCouleurMajeur == 0) { $s_Aspect=$op_TabCouleur->mutat_lib[$i-1]." ".$s_Aspect; } $sp_Aspect=$s_Aspect; if ($s_Porteur!="") { return "".$s_Aspect.' '.$s_Porteur.""; } else { return "".$s_Aspect.""; } } // // Affiche un gif anim dans le resultat du calculateur // quand une photo de l'oiseau resultat existe, ce gif porte un lien sur la photo // function F_AfficherIconeCalculateur($sp_PhotoRep,$sp_Photo,$sp_Alt,$sp_ext) { if ($sp_ext != '') { $s_Photo=preg_replace('# +#', ' ',sF_SansAccent(rtrim($sp_Photo).".".$sp_ext)); } else { $s_Photo=preg_replace('# +#', ' ',sF_SansAccent(rtrim($sp_Photo))); } #echo ($sp_PhotoRep.'/'.nvl($s_Photo,"Pas de photo !!!")); //print $s_Photo; if (file_exists($sp_PhotoRep.'/'.nvl($s_Photo,"Pas de photo !!!"))) { $photo=$sp_PhotoRep.'/'.$s_Photo; $image=getImageSize("$photo"); $photoSon=$sp_PhotoRep.'/son/'.substr($s_Photo,0,strpos($s_Photo,'.')).".mp3"; if (!file_exists($photoSon)) { $photoSon=''; } //$n_Largeur=25; //$n_Hauteur=$n_Largeur*$image[0]/$image[1]; $n_Hauteur=25; $n_Largeur=$n_Hauteur*$image[0]/$image[1]; $n_Largeur=25; echo ''; print "".$sp_Alt."\n"; //print "".$sp_Alt."\n"; //print "".$sp_Alt."\n"; // Mon ordinateur } else { $n_Largeur=25; $n_Hauteur=25; //print "pas de photo\n"; print "pas de photo\n"; } } require_once('site/Normalisation.php'); require_once('site/Connect.php'); require_once('site/Connexion.php'); require_once('site/ExecRequete.php'); require_once('site/browser.php'); // // Recuperation infos browser // /* $o_Browser = new Browser; print 'x'.$o_Browser->Name.'x'; */ F_Normaliser(); print "

Calculateur G n tique

\n"; // // Recuperation de l'action // $s_Chercher=$_POST['Chercher']; $s_Annuler=$_POST['Annuler']; // // Recherche de changement d'espece // $s_NomEspeceForce=$_GET['page']; $s_NomEspeceChoisi=$_POST['NomEspece']; $s_IdMenu=$_GET['id_menu']; $b_NomEspeceModifie=substr($s_NomEspeceChoisi,strpos($s_NomEspeceChoisi,':')+1); if (isset($s_NomEspeceChoisi)) { if ($b_NomEspeceModifie == 'X') { unset($s_Chercher); $s_Annuler="OUI"; $s_NomEspece=substr($s_NomEspeceChoisi,0,strpos($s_NomEspeceChoisi,':')); } else $s_NomEspece=$s_NomEspeceChoisi; } else { if (isset($s_NomEspeceForce)) { $s_NomEspece=$s_NomEspeceForce; } else { $s_NomEspece="Roseicollis"; } // Cas du premier appel $s_Annuler="X"; } // // Initialisation des nombres de crit res // $n_NbDo=1; $n_NbIn=3; $n_NbSe=3; $n_NbRe=4; $sg_LibIn="Dominant autosomique incomplet"; $sg_LibSe="R cessif li au sexe"; $sg_LibRe="R cessif autosomique"; $s_Connexion = sF_Connexion(S_USER,S_PWD,S_BASE,S_SERVEUR); $s_Resultat = sF_ResultatRequete("SELECT LEAST($n_NbDo,COUNT(*)) Nb FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_typ = 'do';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $n_NbDo=$s_Objet->Nb; $s_Resultat = sF_ResultatRequete("SELECT LEAST($n_NbIn,COUNT(*)) Nb FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_typ = 'in';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $n_NbIn=$s_Objet->Nb; $s_Resultat = sF_ResultatRequete("SELECT LEAST($n_NbRe,COUNT(*)) Nb FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_typ = 're';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $n_NbRe=$s_Objet->Nb; $s_Resultat = sF_ResultatRequete("SELECT LEAST($n_NbSe,COUNT(*)) Nb FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_typ = 'se';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $n_NbSe=$s_Objet->Nb; if (! isset($s_Annuler)) { /* print "--
"; for ($i=1;$i<=count($o_TabMut);$i++) { print ".".$o_TabTypMut[$i].".".$o_TabMut[$i].".
\n"; } print "DO
"; */ // r ception des donn es saisies for ($i=1;$i<=$n_NbDo;$i++) { $s_MDo=$_POST['m_do']; //$s_MDo=""; $s_MDo_opt=nvl($_POST['m_do_opt'],"2"); nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$s_MDo,$s_MDo_opt,'do',1); $s_FDo=$_POST['f_do']; //$s_FDo=""; $s_FDo_opt=nvl($_POST['f_do_opt'],"2"); nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$s_FDo,$s_FDo_opt,'do',0); } /* for ($i=1;$i<=count($o_TabMut);$i++) { print ".".$o_TabTypMut[$i].".".$o_TabMut[$i].".
\n"; } print "IN
"; */ $n_NbMal=1; $n_NbFem=1; for ($i=1;$i<=$n_NbIn;$i++) { $og_In[$n_NbMal][1][0]=$_POST['m_in'.$i]; $og_In[$n_NbMal][1][1]=nvl($_POST['m_in'.$i.'_opt'],"1"); $n_NbMal=$n_NbMal+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_In[$n_NbMal][1][0],$og_In[$n_NbMal][1][1],'in',1); $og_In[$n_NbFem][0][0]=$_POST['f_in'.$i]; $og_In[$n_NbFem][0][1]=nvl($_POST['f_in'.$i.'_opt'],"1"); $n_NbFem=$n_NbFem+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_In[$n_NbFem][0][0],$og_In[$n_NbFem][0][1],'in',0); } //print "Nb : ".$n_NbIn.":".$n_NbMal.':'.$n_NbFem."
\n"; $n_NbIn=min($n_NbIn,max($n_NbMal,$n_NbFem)); //print "Nb : ".$n_NbIn.":".$n_NbMal.':'.$n_NbFem."
\n"; /* for ($i=1;$i<=count($o_TabMut);$i++) { print ".".$o_TabTypMut[$i].".".$o_TabMut[$i].".
\n"; } print "SE
"; */ $n_NbMal=1; $n_NbFem=1; for ($i=1;$i<=$n_NbSe;$i++) { $og_Se[$n_NbMal][1][0]=$_POST['m_se'.$i]; $og_Se[$n_NbMal][1][1]=nvl($_POST['m_se'.$i.'_opt'],"2"); $n_NbMal=$n_NbMal+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_Se[$n_NbMal][1][0],$og_Se[$n_NbMal][1][1],'se',1); $og_Se[$n_NbFem][0][0]=$_POST['f_se'.$i]; $og_Se[$n_NbFem][0][1]=nvl($_POST['f_se'.$i.'_opt'],"2"); $n_NbFem=$n_NbFem+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_Se[$n_NbFem][0][0],$og_Se[$n_NbFem][0][1],'se',0); } //print "Nb : ".$n_NbSe.":".$n_NbMal.':'.$n_NbFem."
\n"; $n_NbSe=min($n_NbSe,max($n_NbMal,$n_NbFem)); //print "Nb : ".$n_NbSe.":".$n_NbMal.':'.$n_NbFem."
\n"; /* for ($i=1;$i<=count($o_TabMut);$i++) { print ".".$o_TabTypMut[$i].".".$o_TabMut[$i].".
\n"; } print "RE
"; */ $n_NbMal=1; $n_NbFem=1; for ($i=1;$i<=$n_NbRe;$i++) { $og_Re[$n_NbMal][1][0]=$_POST['m_re'.$i]; $og_Re[$n_NbMal][1][1]=nvl($_POST['m_re'.$i.'_opt'],"2"); $n_NbMal=$n_NbMal+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_Re[$n_NbMal][1][0],$og_Re[$n_NbMal][1][1],'re',1); $og_Re[$n_NbFem][0][0]=$_POST['f_re'.$i]; $og_Re[$n_NbFem][0][1]=nvl($_POST['f_re'.$i.'_opt'],"2"); $n_NbFem=$n_NbFem+nF_StockerChoix($o_TabMut,$o_TabTypMut,$o_TabMal,$o_TabFem,$og_Re[$n_NbFem][0][0],$og_Re[$n_NbFem][0][1],'re',0); } //print "Nb : ".$n_NbRe.":".$n_NbMal.':'.$n_NbFem."
\n"; $n_NbRe=min($n_NbRe,max($n_NbMal,$n_NbFem)); //print "Nb : ".$n_NbRe.":".$n_NbMal.':'.$n_NbFem."
\n"; /* for ($i=1;$i<=count($o_TabMut);$i++) { print ".".$o_TabTypMut[$i].".".$o_TabMut[$i].".
\n"; } */ } // print "
\n"; //print "\n"; print "\n"; print "

\n"; //print ''."\n"; //print "\n"; //print ""; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $o_Couple[m]=""; $o_Couple[f]=""; for ($i=1;$i<=$n_NbDo;$i++) { print "\n"; if ($i==1) print '\n"; for ($i=1;$i<=$n_NbIn;$i++) { print "\n"; if ($i==1) print '\n"; for ($i=1;$i<=$n_NbSe;$i++) { print "\n"; if ($i==1) print '\n"; for ($i=1;$i<=$n_NbRe;$i++) { print "\n"; if ($i==1) print '\n"; print "\n"; print "\n"; print "\n"; print "
Type Mutation M leFemelle
MutationAspectPorteurMutationAspectPorteur
sfdfsfdf
\n"; } print "
\n"; $sg_LibIn=""; } print "
\n"; $sg_LibSe=""; } print "
\n"; $sg_LibRe=""; } print "

"; print "         
\n"; print "

\n"; if (isset($s_Chercher)) { $n_NbMutation=1; $o_TabAspect_mal[1]=""; $o_TabPorteur_mal[1]=""; $o_TabAspect_fem[1]=""; $o_TabPorteur_fem[1]=""; $o_TabRatio_mal[1]=50; $o_TabRatio_fem[1]=50; $s_MalList="?"; $s_FemList="?"; $s_MalListLib=""; # # Verifcation d'un seule critere co-dominant # for ($i=1;$i<=count($o_TabMut);$i++) { $s_MutCod=substr($o_TabMut[$i],0,strpos($o_TabMut[$i],':')); $s_Resultat = sF_ResultatRequete("SELECT mutat_lib,mutat_err FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_cod = '$s_MutCod';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); // print $s_MutCod.' '.$s_Objet->mutat_err."
"; $s_ErrList=$s_Objet->mutat_err; $s_ErrLib=$s_Objet->mutat_lib; if (isset($s_ErrList)) { # male //if (($o_TabOpt[$i] == 4) or ($o_TabOpt[$i] == 3 and $o_TabSexe[$i] == 2) or ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] == 2)) if ($o_TabMal[$i] == 2) { if (strcspn($s_MalList,$s_ErrList) == strlen($s_MalList)) { // print $i."M->".$s_ErrLib.'+'.$s_ErrList.'+'.$s_MalList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; $s_MalList=$s_MalList.$s_ErrList; $s_MalListLib=$s_MalListLib.' '.$s_ErrLib; } else { // print $i."M+>".$s_ErrLib.'+'.$s_ErrList.'+'.$s_MalList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; $s_MalErr="Le M le ne peut pas tre "; $s_MalList=$s_MalList.$s_ErrList; $s_MalListLib=$s_MalListLib.' '.$s_ErrLib; } } # Femelle // if (($o_TabOpt[$i] == 4) or ($o_TabOpt[$i] == 3 and $o_TabSexe[$i] == 1) or ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] == 1)) if ($o_TabFem[$i] == 2) { if (strcspn($s_FemList,$s_ErrList) == strlen($s_FemList)) { // print $i."F->".$s_ErrLib.'+'.$s_ErrList.'+'.$s_FemList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; $s_FemList=$s_FemList.$s_ErrList; $s_FemListLib=$s_FemListLib.' '.$s_ErrLib; } else { // print $i."F+>".$s_ErrLib.'+'.$s_ErrList.'+'.$s_FemList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; // print strcspn($s_FemList,$s_ErrList) + strcspn($s_ErrList,$s_FemList); // print strcspn($s_FemList,$s_ErrList); // print strcspn($s_ErrList,$s_FemList); $s_FemErr="La femelle ne peut pas tre "; $s_FemList=$s_FemList.$s_ErrList; $s_FemListLib=$s_FemListLib.' '.$s_ErrLib; } } } } if ($s_FemErr != "") $s_FemErr="

".$s_FemErr."".$s_FemListLib."

"; if ($s_MalErr != "") $s_MalErr="

".$s_MalErr."".$s_MalListLib."

"; # # Verifcation des couples deconseilles # $s_MalList=" "; $s_FemList=" "; $s_MixList=" "; $b_CoupleDeconseille=0; $s_MalListLib=""; $s_FemListLib=""; for ($i=1;$i<=count($o_TabMut);$i++) { $s_MutCod=substr($o_TabMut[$i],0,strpos($o_TabMut[$i],':')); $s_Resultat = sF_ResultatRequete("SELECT mutat_lib,couple_err FROM mutation WHERE espec_cod = '".$s_NomEspece."' AND mutat_cod = '$s_MutCod';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); // print $s_MutCod.' '.$s_Objet->mutat_err."
"; $s_ErrList=$s_Objet->couple_err; $s_ErrLib=$s_Objet->mutat_lib; if (strlen($s_ErrList) != 0) { # Les deux if (($o_TabFem[$i] == 2 and $o_TabMal[$i] == 2) or ($o_TabFem[$i] == 1 and $o_TabMal[$i] == 1) or ($o_TabFem[$i] == 2 and $o_TabMal[$i] == 1) or ($o_TabFem[$i] == 1 and $o_TabMal[$i] == 2)) { // print $i."M >".$s_ErrLib.'+'.$s_ErrList.'+'.$s_MixList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; if (strcspn($s_MixList,$s_ErrList) != strlen($s_MixList)) { $b_CoupleDeconseille=1; } $s_MixList=$s_MixList.$s_ErrList; $s_FemListLib=$s_FemListLib.' '.$s_ErrLib; $s_MalListLib=$s_MalListLib.' '.$s_ErrLib; } else { # male // print $i."M+>".$s_ErrLib.'+'.$s_ErrList.'+'.$s_MalList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; // if (($o_TabOpt[$i] == 3 and $o_TabSexe[$i] == 2) or ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] == 2)) if ($o_TabMal[$i] != 0) { // print $i."M+>".$s_ErrLib.'+'.$s_ErrList.'+'.$s_MalList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; $s_MalList=$s_MalList.$s_ErrList; $s_MalListLib=$s_MalListLib.' '.$s_ErrLib; } else { # Femelle //if (($o_TabOpt[$i] == 3 and $o_TabSexe[$i] == 1) or ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] == 1)) if ($o_TabFem[$i] != 0) { // print $i."M->".$s_ErrLib.'+'.$s_ErrList.'+'.$s_FemList.'+'.$o_TabOpt[$i].'+'.$o_TabSexe[$i].'
'; $s_FemList=$s_FemList.$s_ErrList; $s_FemListLib=$s_FemListLib.' '.$s_ErrLib; } } } } } // print '
------>'."$s_MalList".'+'.$s_FemList.'+'.$s_MixList; if (strcspn($s_MalList,$s_FemList) != strlen($s_MalList) or strcspn($s_FemList,$s_MixList) != strlen($s_FemList) or strcspn($s_MalList,$s_MixList) != strlen($s_MalList) or $b_CoupleDeconseille == 1) { $s_ErrCouple="

Attention : Accouplement des mutations ".$s_MalListLib." X ".$s_FemListLib." peu conseill

"; } $n_DebTab=1; for ($i=$n_DebTab;$i<=count($o_TabMut);$i++) { $s_Mutation=substr($o_TabMut[$i],strpos($o_TabMut[$i],':')+1); // $s_Mutation=substr($s_Mutation,0,strpos($s_Mutation,':')); if ($o_TabMal[$i] == 2 and $o_TabFem[$i] == 2) { switch ($o_TabTypMut[$i]) { case "do" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation." "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation." "; break; case "in" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation."(df)"." "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation."(df)"." "; break; case "re" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation." "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation." "; break; case "se" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation." "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation." "; break; } } } //for ($i=1;$i<=count($o_TabMut);$i++) for ($i=$n_DebTab;$i<=count($o_TabMut);$i++) { $s_Mutation=substr($o_TabMut[$i],strpos($o_TabMut[$i],':')+1); // $s_Mutation=substr($s_Mutation,0,strpos($s_Mutation,':')); if ($o_TabMal[$i] + $o_TabFem[$i] == 3) { $n_NbMut=$n_NbMutation; for ($j=$n_DebTab;$j<=$n_NbMut;$j++) { switch ($o_TabTypMut[$i]) { case "in" : $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j].$s_Mutation."(df)".' '; //$o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; //$o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j].$s_Mutation."(sf)".' '; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j].$s_Mutation."(df)".' '; //$o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; //$o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation."(sf)".' '; break; case "re" : $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j].$s_Mutation.' '; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; //$o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j].$s_Mutation.' '; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; //$o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].$s_Mutation.'+'; $o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].'/'.$s_Mutation.' '; break; case "se" : // Male $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j].$s_Mutation.' '; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; // $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; // Femelle $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j].$s_Mutation.' '; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; //$o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation.' '; //$o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j]; break; } $o_TabRatio_mal[$j]=$o_TabRatio_mal[$j]/2; $o_TabRatio_mal[$j+$n_NbMut]=$o_TabRatio_mal[$j]; $o_TabRatio_fem[$j]=$o_TabRatio_fem[$j]/2; $o_TabRatio_fem[$j+$n_NbMut]=$o_TabRatio_fem[$j]; } $n_NbMutation=$n_NbMutation*2; } } //for ($i=1;$i<=count($o_TabMut);$i++) for ($i=$n_DebTab;$i<=count($o_TabMut);$i++) { $s_Mutation=substr($o_TabMut[$i],strpos($o_TabMut[$i],':')+1); // $s_Mutation=substr($s_Mutation,0,strpos($s_Mutation,':')); # Port par les 2 // if ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] == 0) // print "mal:".$o_TabPorteur_mal[$i]."+".$s_Mutation."
\n"; // print "fem:".$o_TabPorteur_fem[$i]."+".$s_Mutation."
\n"; if ($o_TabMal[$i] + $o_TabFem[$i] == 2) { #print $o_TabPorteur_mal[$n_NbMutation]."+".$s_Mutation; if ($o_TabMal[$i] == 1 and $o_TabFem[$i] == 1) { $n_NbMut=$n_NbMutation; for ($j=$n_DebTab;$j<=$n_NbMut;$j++) { switch ($o_TabTypMut[$i]) { case "in" : $o_TabAspect_mal[$j+2*$n_NbMut]=$o_TabAspect_mal[$j].$s_Mutation.'(df)'.' '; $o_TabPorteur_mal[$j+2*$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j].$s_Mutation.'(sf)'.' '; $o_TabAspect_fem[$j+2*$n_NbMut]=$o_TabAspect_fem[$j].$s_Mutation.'(df)'.' '; $o_TabPorteur_fem[$j+2*$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation.'(sf)'.' '; break; case "re" : $o_TabAspect_mal[$j+2*$n_NbMut]=$o_TabAspect_mal[$j].$s_Mutation.' '; $o_TabPorteur_mal[$j+2*$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; //$o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; $o_TabAspect_fem[$j+2*$n_NbMut]=$o_TabAspect_fem[$j].$s_Mutation.' '; $o_TabPorteur_fem[$j+2*$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; //$o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].$s_Mutation.'+'; $o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].'/'.$s_Mutation.' '; break; case "se" : # Cas impossible break; } $o_TabRatio_mal[$j]=$o_TabRatio_mal[$j]/2; $o_TabRatio_mal[$j+$n_NbMut]=$o_TabRatio_mal[$j]/2; $o_TabRatio_mal[$j+2*$n_NbMut]=$o_TabRatio_mal[$j]/2; $o_TabRatio_fem[$j]=$o_TabRatio_fem[$j]/2; $o_TabRatio_fem[$j+$n_NbMut]=$o_TabRatio_fem[$j]/2; $o_TabRatio_fem[$j+2*$n_NbMut]=$o_TabRatio_fem[$j]/2; } $n_NbMutation=$n_NbMutation*3; } else # femelle ou male d'aspect // if ($o_TabOpt[$i] == 2 and $o_TabSexe[$i] != 0) # if (($o_TabMal[$i] == 2 or $o_TabFem[$i] == 2) and ($o_TabMal[$i] + $o_TabFem[$i] == 2)) { switch ($o_TabTypMut[$i]) { case "do" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation." "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation." "; break; case "in" : $o_TabAspect_mal[$n_NbMutation]=$o_TabAspect_mal[$n_NbMutation].$s_Mutation."(sf) "; $o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation."(sf) "; break; case "re" : // $o_TabPorteur_mal[$n_NbMutation]=$o_TabPorteur_mal[$n_NbMutation].$s_Mutation.'+'; // $o_TabPorteur_fem[$n_NbMutation]=$o_TabPorteur_fem[$n_NbMutation].$s_Mutation.'+'; $o_TabPorteur_mal[$n_NbMutation]=$o_TabPorteur_mal[$n_NbMutation].'/'.$s_Mutation.' '; $o_TabPorteur_fem[$n_NbMutation]=$o_TabPorteur_fem[$n_NbMutation].'/'.$s_Mutation.' '; break; case "se" : # Male d'aspect if ($o_TabMal[$i] == 2) { for ($j=$n_DebTab;$j<=$n_NbMutation;$j++) { //$o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation.' '; } //$o_TabPorteur_mal[$n_NbMutation]=$o_TabPorteur_mal[$n_NbMutation].$s_Mutation.'+'; //$o_TabAspect_fem[$n_NbMutation]=$o_TabAspect_fem[$n_NbMutation].$s_Mutation.' '; } # Femelle d'aspect if ($o_TabFem[$i] == 2) { $n_NbMut=$n_NbMutation; for ($j=$n_DebTab;$j<=$n_NbMutation;$j++) { // $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; } } break; } } } } //for ($i=1;$i<=count($o_TabMut);$i++) for ($i=$n_DebTab;$i<=count($o_TabMut);$i++) { $s_Mutation=substr($o_TabMut[$i],strpos($o_TabMut[$i],':')+1); // $s_Mutation=substr($s_Mutation,0,strpos($s_Mutation,':')); // if ($o_TabOpt[$i] == 1) if ($o_TabMal[$i] + $o_TabFem[$i] == 1) { $n_NbMut=$n_NbMutation; for ($j=$n_DebTab;$j<=$n_NbMut;$j++) { switch ($o_TabTypMut[$i]) { case "in" : $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j].$s_Mutation.'(sf) '; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation.'(sf) '; break; case "re" : $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; //$o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j]; //$o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].$s_Mutation.'+'; $o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j].'/'.$s_Mutation.' '; break; case "se" : $o_TabAspect_mal[$j+$n_NbMut]=$o_TabAspect_mal[$j]; $o_TabPorteur_mal[$j+$n_NbMut]=$o_TabPorteur_mal[$j]; $o_TabAspect_mal[$j]=$o_TabAspect_mal[$j]; //$o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].$s_Mutation.'+'; $o_TabPorteur_mal[$j]=$o_TabPorteur_mal[$j].'/'.$s_Mutation.' '; $o_TabAspect_fem[$j+$n_NbMut]=$o_TabAspect_fem[$j]; $o_TabPorteur_fem[$j+$n_NbMut]=$o_TabPorteur_fem[$j]; $o_TabAspect_fem[$j]=$o_TabAspect_fem[$j].$s_Mutation.' '; $o_TabPorteur_fem[$j]=$o_TabPorteur_fem[$j]; break; } $o_TabRatio_mal[$j]=$o_TabRatio_mal[$j]/2; $o_TabRatio_mal[$j+$n_NbMut]=$o_TabRatio_mal[$j]; $o_TabRatio_fem[$j]=$o_TabRatio_fem[$j]/2; $o_TabRatio_fem[$j+$n_NbMut]=$o_TabRatio_fem[$j]; //print "Mutation = $n_NbMutation"; } $n_NbMutation=$n_NbMutation*2; } } // $n_Mutation++; $s_Resultat = sF_ResultatRequete("SELECT photo_rep,photo_haut,photo_larg,docum_rep FROM espece WHERE espec_cod = '".$s_NomEspece."';",$s_Connexion); $s_Objet = sF_ObjetSuivant($s_Resultat); $s_PhotoRep=$s_Objet->photo_rep."/resultat"; #$s_PhotoRep=$s_Objet->photo_rep; # # # Chargement de la table des couleurs # $n_NbCouleur=0; $s_Resultat = sF_ResultatRequete("SELECT mutat_lib,color_num,mutat_typ,'NULL' aspect,'NULL' porteur FROM mutation WHERE espec_cod ='".$s_NomEspece."' AND color_num != '' UNION SELECT mutat_lib,color_num,mutat_typ,aspect,porteur FROM co_dominant WHERE espec_cod ='".$s_NomEspece."'ORDER BY color_num DESC;",$s_Connexion); while ($s_Objet = sF_ObjetSuivant($s_Resultat)) { if ($s_Objet->mutat_typ == "in") { # # Pour sF_Nom : on considere 2 couleurs differentes # $n_NbCouleur++; $o_TabCouleur->mutat_lib[$n_NbCouleur]=$s_Objet->mutat_lib+"(sf)"; $o_TabCouleur->color_num[$n_NbCouleur]=$s_Objet->color_num; $o_TabCouleur->aspect[$n_NbCouleur]=$s_Objet->aspect; $o_TabCouleur->porteur[$n_NbCouleur]=$s_Objet->porteur; $n_NbCouleur++; $o_TabCouleur->mutat_lib[$n_NbCouleur]=$s_Objet->mutat_lib+"(df)"; $o_TabCouleur->color_num[$n_NbCouleur]=$s_Objet->color_num; $o_TabCouleur->aspect[$n_NbCouleur]=$s_Objet->aspect; $o_TabCouleur->porteur[$n_NbCouleur]=$s_Objet->porteur; } else { $n_NbCouleur++; $o_TabCouleur->mutat_lib[$n_NbCouleur]=$s_Objet->mutat_lib; $o_TabCouleur->color_num[$n_NbCouleur]=$s_Objet->color_num; $o_TabCouleur->aspect[$n_NbCouleur]=$s_Objet->aspect; $o_TabCouleur->porteur[$n_NbCouleur]=$s_Objet->porteur; } } ##print $s_Mutation_mal=sF_Mutation($o_Couple[m],"",$o_TabCouleur); $s_Pere=sF_Mutation($o_Couple[m],"",$o_TabCouleur); //print $s_Pere."
\n"; //print $o_Couple[m]."
\n"; $s_Mere=sF_Mutation($o_Couple[f],"",$o_TabCouleur); //print $s_Mere."
\n"; //print $o_Couple[f]."
\n"; // $o_TabAspect_mal[$n_Mutation]=$o_TabMut[$i]; // $o_TabPorteur_mal[$n_Mutation]=""; //print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; if ($s_MalErr != "") { print "\n"; print ""; print "\n"; print "\n"; $n_NbMutation=0; } if ($s_FemErr != "") { print "\n"; print ""; print "\n"; print "\n"; $n_NbMutation=0; } if ($s_ErrCouple != "") { print "\n"; print ""; print "\n"; print "\n"; } for ($i=1;$i<=$n_NbMutation;$i++) { $s_Mutation_mal=sF_Mutation($o_TabAspect_mal[$i],$o_TabPorteur_mal[$i],$o_TabCouleur); $s_Mutation_fem=sF_Mutation($o_TabAspect_fem[$i],$o_TabPorteur_fem[$i],$o_TabCouleur); // print '&'.$s_Mutation_mal."&".$s_Mutation_fem."&".strlen($s_Mutation_mal)."&".strlen($s_Mutation_fem); if ($s_Mutation_mal == $s_Mutation_fem) { print "\n"; print ""; print ""; print "\n"; print "\n"; print "\n"; } else { print "\n"; print ""; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print ""; print "\n"; print "\n"; print "\n"; } } #print "\n"; #print "\n"; #print "
R sultat
PhotoAspect en gras, Port en italiqueM le
"; //F_AfficherIconeCalculateur($s_PhotoRep,ltrim($o_Couple[m]),$o_Couple[m],'jpg'); //F_AfficherIconeCalculateur($s_PhotoRep,ltrim($s_Pere),ltrim($s_Pere)); print "
Femelle
\n"; //F_AfficherIconeCalculateur($s_PhotoRep,ltrim($o_Couple[f]),$o_Couple[f],'jpg'); //F_AfficherIconeCalculateur($s_PhotoRep,ltrim($s_Mere),ltrim($s_Pere)); print "
$s_MalErr
$s_FemErr
$s_ErrCouple
\n"; F_AfficherIconeCalculateur($s_PhotoRep,$o_TabAspect_mal[$i],$o_TabAspect_mal[$i],'jpg'); print "
".$s_Mutation_mal."
".$o_TabRatio_mal[$i]."%
".$o_TabRatio_fem[$i]."%
"; F_AfficherIconeCalculateur($s_PhotoRep,$o_TabAspect_mal[$i],$o_TabAspect_mal[$i],'jpg'); print "
".$s_Mutation_mal."
".$o_TabRatio_mal[$i]."%
"; F_AfficherIconeCalculateur($s_PhotoRep,$o_TabAspect_fem[$i],$o_TabAspect_fem[$i],'jpg'); print "
".$s_Mutation_fem."
".$o_TabRatio_fem[$i]."%
\n"; print "
\n"; print "
\n"; } // print "
"; //print ""; //print ""; ?>

L’élevage des agapornis m’a amené dans l’immersion de la photographie animalière en faune sauvage, et m’a permis de découvrir avec plaisir les couleurs et les sons de la nature qui la composent.

ASTROWEB DIGITAL ® 2025 ••• Mentions légales - Politique de confidentialité