Page 1 sur 1
Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 02 févr. 2016, 12:31
par Michel6359
Bonjour , Merci de prendre un peu de temps pour m'aider je suis bloqué depuis plusieurs jours.
Je suis occupé de faire un petit script pour un concours amical de pronostique quinté course hippique.
Je voudrai qu'il me trouve les combinaisons gagnante .
Exemple Arrivée : 1 2 3 4 5
Mon pronostique : 1 7 2 9 3 8 4 5 ici nous avons les chiffres 1 2 3 4 5 qui sont dans l'ordre
1 7 2 9 3 8 4 5
Comment je peux faire une requête pour trouver ceci
Et également si mes 5 chiffres sont dans les 8 mais en désordre
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 02 févr. 2016, 15:27
par ynx
Salut,
Un début de solution possible :
$arrivees = array(1,2,3,4,5);
$pronostique = array(1,7,2,9,3,8,4,5);
// on enregistre dans ce tableau tous les chiffres du pronostique qui sont dans les arrivées
$pronostque_tmp = array();
foreach($pronostique as $prono) {
if (in_array($prono, $arrivees)) {
$pronostque_tmp[] = $prono;
}
}
// si on a trouvé le même nombre de chiffres que le tableau d'arrivées, on a donc trouvé tous les chiffres (indépendamment de l'ordre)
if (count($pronostque_tmp) == count($arrivees)) {
echo 'Tous les chiffres ont été trouvés.';
}
// si la comparaison des tableaux $arrivees et $pronostque_tmp retourne un tableau vide, c'est que les deux tableaux sont identiques et dans le même ordre
if (empty(array_diff_assoc($arrivees, $pronostque_tmp))) {
echo 'Les chiffres trouvés sont dans l\'ordre.'
}
J'ai un doute sur l'utilisation de array_diff_assoc pour comparer les deux tableaux, il y a p-e un moyen plus efficace.
Bonne journée
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 02 févr. 2016, 23:30
par Patriboom
Bonjour,
je crois plus efficace de faire ainsi: d'abord une recherche array_keys puis un dénombrement du résultat par count
http://php.net/manual/fr/function.array-keys.php
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 03 févr. 2016, 11:12
par Michel6359
Bonjour
Un grand Merci ,super !
Je vous tiens au courant
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 03 févr. 2016, 14:10
par Michel6359
Bonjour , j'ai essayé ça , mais je ne peux pas voir le résultat une erreur 500, quand je retire ton code aucune erreur.
Ce qu'il serait bien c qu'il me trouve si 3 chevaux = tiercé ordre(100 points) ou désordre(50 points) , 4 chevaux =quarté ordre (200 points) et désordre (100 points), et 5 chevaux ordre(250 points) et désordre (500 points)
Un grand merci
<?php
#########################################
# CONNEXION AU SERVEUR BASES DE DONNEES #
#########################################
$REFERENCE_QUINTE ='02022016';
mysql_connect("127.0.0.1", "*", "*");
mysql_select_db("michelte_pmu");
$pronos = "SELECT *, DATE_FORMAT(date_prono, '%Hh:%i' ) AS 'date_enregistrement' FROM Prono_Turf WHERE REFERENCE_QUINTE ='$REFERENCE_QUINTE' ORDER BY PARTICIPANT";
$reponse = mysql_query($pronos) or die (mysql_error());
while ($datas = mysql_fetch_assoc($reponse))
{
$arrivees = array(1,2,3,4,5);
$pronostique = array(1,7,2,9,3,8,4,5);
// on enregistre dans ce tableau tous les chiffres du pronostique qui sont dans les arrivées
$pronostque_tmp = array();
foreach($pronostique as $prono) {
if (in_array($prono, $arrivees)) {
$pronostque_tmp[] = $prono;
}
}
// si on a trouvé le même nombre de chiffres que le tableau d'arrivées, on a donc trouvé tous les chiffres (indépendamment de l'ordre)
if (count($pronostque_tmp) == count($arrivees)) {
echo 'Tous les chiffres ont été trouvés.';
}
// si la comparaison des tableaux $arrivees et $pronostque_tmp retourne un tableau vide, c'est que les deux tableaux sont identiques et dans le même ordre
if (empty(array_diff_assoc($arrivees, $pronostque_tmp))) {
echo 'Les chiffres trouvés sont dans l\'ordre.';
}
$Total_points =1000+1; // Pour linstant le temps de trouver le calcul .
?>
<tbody>
<tr>
<td><div align="center"><strong><?php echo ''.$datas['date_enregistrement'].'';?></strong></div></td>
<td><div align="center"><?php echo ''.$datas['PARTICIPANT'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH1'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH2'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH3'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH4'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH5'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH6'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH7'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['CH8'].'';?></div></td>
<td><div align="center"><?php echo ''.$datas['REGRET'].'';?></div></td>
<td><div align="center"><?php echo ''.$Total_points.'';?></div></td>
</tr>
</tbody>
<?php } ?>
</table>
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 03 févr. 2016, 18:23
par ynx
Une erreur 500 indique une erreur du serveur, souvent cela correspond à une erreur de syntaxe PHP mais il ne semble pas y en avoir dans le code de ton précédent message.
Tu dois pouvoir trouver le message d'erreur complet dans le journal d'erreur de php (le fichier se nomme en général error_log ou error.log).
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 03 févr. 2016, 19:12
par Patriboom
Il faudrait être plus précis dans ta description de code.
Quand tu écris que tu as une erreur 500 en ajoutant mon code ... euh! .... en ajoutant quoi au juste?
Est-ce que le code ci-haut fonctionne ou non?
Les erreurs 500 peuvent être provoquées par une boucle sans fin (voir ton while ...) et bien d'autres choses, cf ynx ci-haut
Aussi, il faudra penser à passer au mysqli et abandonner mysql :.
http://php.net/manual/fr/class.mysqli.php
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 03 févr. 2016, 19:20
par Patriboom
Pense à quelque chose comme:
Code : Tout sélectionner
$arrivees = array(1,2,3,4,5);
while ($datas = mysql_fetch_assoc($reponse))
{
$pronostique = array(1,7,2,9,3,8,4,5);
// on enregistre dans ce tableau tous les chiffres du pronostique qui sont dans les arrivées
$communs[$datas->$id_pronostique] = array_intersect($arrivees,$pronostique);
$combien[$datas->$id_pronostique] = count($commun[$datas->$id_pronostique]);
}
qui me semble plus simple
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 04 févr. 2016, 12:59
par J-Nicolas
Je voudrai qu'il me trouve les combinaisons gagnante .
Ca c'est une bonne idée, je cherche depuis longtemps pour me permettre de gagner le tiercé à chaque fois

Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 04 févr. 2016, 13:27
par Michel6359
Tout d'abord Bonjour
Je te rappel que c un concours amical entre nous et non jeux joué , sinon aucun intérêt les course sont tellement imprévisible. Tu m'as donc pas aidé par ton message sans aucun intérêt .
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 04 févr. 2016, 20:03
par @rthur
Je te rappel que c un concours amical entre nous et non jeux joué , sinon aucun intérêt les course sont tellement imprévisible. Tu m'as donc pas aidé par ton message sans aucun intérêt .
Tant que ça ne part pas en troll, un peu d'humour ne fait pas de mal non plus

Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 06 févr. 2016, 13:43
par sirakawa
Pour gagner à coup sur, il faut s'appeler Monsieur X (il a existé et gagné énormément en dépit des efforts du PMU) ou s'abstenir de jouer.
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 06 févr. 2016, 14:54
par sirakawa
Voici une autre piste:
?PHP
function verifie ($resultat, $arrivee, $nb_elems)
{
$nombre= 0;
for ($i = 0; $i < $nb_elems; $i++)
{
$arrive = isset($arrivee[$i])? $arrivee[$i] : -9;
$joue = isset($resultat[$i])? $resultat[$i] : 999;
$nombre += ($arrive == $joue)? 1 : 0;
}
return $nombre;
}
$arrivee = array(1,2,3,4,5);
$jeu = array(36,2,9,11,5,4,3);
$resultat = array_intersect($arrivee, $jeu);
$nb_bons = count($resultat);
print_r($resultat);
print "nombre sans ordre $nb_bons";
$exacts = verifie ($jeu, $arrivee, 5);
print "<br> nombre ordre $exacts<be>";
?>
Re: Comparaison de 5 chiffres ordre et désordre sur 8 autres chiffres
Posté : 09 févr. 2016, 09:54
par Michel6359
BONJOUR sirakawa
Merci pour ton aide c une solution , je regarderai ça .
Bonne journée