3 réponses
jordane45
Messages postés
38369
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 janvier 2025
4 722
18 juil. 2019 à 06:43
18 juil. 2019 à 06:43
Bonjour
Tu places la liste des id de parain dans un array
Idem avec la liste des premières années
Ensuite, tu boucle sur l'array des parains et pour chacun, tu tires au hasard un id de première (que tu enleves ensuite de son array)
Tu places la liste des id de parain dans un array
Idem avec la liste des premières années
Ensuite, tu boucle sur l'array des parains et pour chacun, tu tires au hasard un id de première (que tu enleves ensuite de son array)
jordane45
Messages postés
38369
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 janvier 2025
4 722
18 juil. 2019 à 14:57
18 juil. 2019 à 14:57
On s'est mal compris...
Quand je parlais de voir ton code... c'était "APRES" avoir pris en compte la "logique" que je t'avais donné....
Donc, pour que tu comprennes la "logique", tu peux essayer ceci :
A toi de le retranscrire avec les requêtes en Base de données ...
PS: Vu que tu fais du PDO, je t'invite vivement à lire et à appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et au passage.. ceci également :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Quand je parlais de voir ton code... c'était "APRES" avoir pris en compte la "logique" que je t'avais donné....
Donc, pour que tu comprennes la "logique", tu peux essayer ceci :
<?php $array_parains = array(1,2,3,5,9,10); $array_filleuls = array(1,6,65,33,124,564,7789,213,545,88); $result = array(); //pour chaque parain on associe un filleul foreach($array_parains as $P){ //on prend un filleul au hasard if(!empty($array_filleuls)){ $rnd_key = array_rand($array_filleuls,1); $rand_filleul = $array_filleuls[$rnd_key]; $result[]=array('id_parain'=>$P,'id_filleul'=>$rand_filleul); unset($array_filleuls[$rnd_key]); } } echo "<pre>"; print_r($result); echo "</pre>"; echo "<br> Mais il reste des filleuls..."; echo "<pre>"; print_r($array_filleuls); echo "</pre>"; //maintenant.. si il reste des filleuls à assigner... if(!empty($array_filleuls)){ foreach($array_filleuls as $F){ $rnd_key = array_rand($array_parains,1); $result[]=array('id_parain'=>$array_parains[$rnd_key],'id_filleul'=>$F); } } echo "<hr><br>Le résultat final "; echo "<pre>"; print_r($result); echo "</pre>";
A toi de le retranscrire avec les requêtes en Base de données ...
PS: Vu que tu fais du PDO, je t'invite vivement à lire et à appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et au passage.. ceci également :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
18 juil. 2019 à 06:46
18 juil. 2019 à 08:46
18 juil. 2019 à 11:59
Techniquement... je pourrais.... mais ce n'est pas tellement l'esprit de ce forum. (nous ne ferons pas le travail à ta place).
Donc, Commence par nous montrer ce que tu as essayé et explique nous à quel endroit tu bloques.
Là, on verra pour t'aider à corriger ton code.
18 juil. 2019 à 12:04
OK donc je vous montre mon code
18 juil. 2019 à 12:12
$key = rand(1, 1000); $requete = $db->prepare(" SELECT * FROM parrain WHERE id_p = ? "); $requete->execute(array($key)); $verifier = 1; while ($verifier == 1) { if ($resultats = $requete->fetch() ) { $verifier = 0; }else{ $key = rand(1, 1000); $requete = $db->prepare(" SELECT * FROM parrain WHERE id_p = ? "); $requete->execute(array($key)); } } $insertion = $db->prepare(" INSERT INTO filleul(id_f, nom_f, prenom_f, classe_f, numero_f, genre_f, cle) VALUES('', ?, ?, ?, ?, ?, ?)"); $insertion->execute(array($nom_f, $prenom_f, $classe_f, $numero_f, $genre_f, $key)); $flashalertef = '<div class="alert alert-success"> Inscription terminée, félicitation filleul '.$nom_f.' '.$prenom_f.' </div>'; }else{ $flashalertef = '<div class="alert alert-danger"> Erreur de remplissage des champs !!! Tous les champs sont obligatoires </div>'; } } ?>