Sélection dans une base de donnée
Résolu/Fermé
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
-
2 mai 2020 à 02:05
David987 Messages postés 121 Date d'inscription samedi 19 décembre 2015 Statut Membre Dernière intervention 16 octobre 2022 - 3 mai 2020 à 17:19
David987 Messages postés 121 Date d'inscription samedi 19 décembre 2015 Statut Membre Dernière intervention 16 octobre 2022 - 3 mai 2020 à 17:19
A voir également:
- Sélection dans une base de donnée
- Formules excel de base - Guide
- Supprimer une base de données phpmyadmin ✓ - Forum Logiciels
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Célia doit nettoyer le tableau ci-dessous pour l’ajouter à la base de données de son entreprise. les données sont ensuite traitées automatiquement. quelles sont les 4 cellules qui risquent de poser problème ? ✓ - Forum Excel
- Outil selection illustrator ne fonctionne pas ✓ - Forum Illustrator
6 réponses
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
1 474
2 mai 2020 à 09:05
2 mai 2020 à 09:05
bonjour,
as-tu essayé la solution décrite ici: https://forums.commentcamarche.net/forum/affich-35722340-taux-en-php
as-tu essayé la solution décrite ici: https://forums.commentcamarche.net/forum/affich-35722340-taux-en-php
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
2 mai 2020 à 13:35
2 mai 2020 à 13:35
Oui mais ce n'est pas bon.
et j'ai perdu mon fichier.
En faite je souhaite que le tirage se fasse en fonction du taux de chaque objet.
et j'ai perdu mon fichier.
En faite je souhaite que le tirage se fasse en fonction du taux de chaque objet.
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
1 474
2 mai 2020 à 14:02
2 mai 2020 à 14:02
moi je ferais des tirages indépendants pour chaque type d'objet: tirer 15 A, 6 B, ...
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
Modifié le 2 mai 2020 à 20:46
Modifié le 2 mai 2020 à 20:46
J'ai ça pour le moment :
Comment adapter ce code pour sélectionner en fonction du taux que je souhaite ?
//Enregistrement de 30 pokemon dans une table pour affichage au joueur $nbr_poke = 0 ; while( $nbr_poke < 30) { $poke_affich_joueur = $bdd->query("SELECT * FROM selec_poke ORDER BY RAND()LIMIT 30"); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,50); $niveau = rand(13,17); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } $insert_poke_capture = $bdd->exec("INSERT INTO herbe (`no_poke`, `nom`, `lvl`, `sexe`, `chroma`) VALUES('".$poke_entrer['no_poke']."', '".$poke_entrer['nom']."', '".$niveau."', '".$sexe2."', '".$Chromatique."')"); $nbr_poke++; } header('location:test_affiche.php');
Comment adapter ce code pour sélectionner en fonction du taux que je souhaite ?
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
2 mai 2020 à 20:53
2 mai 2020 à 20:53
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
2 mai 2020 à 21:34
2 mai 2020 à 21:34
Alors voila, en suivant tes conseils je suis parvenu à faire ça :
Cela fonctionne parfaitement avec ce que je cherche par contre j'aimerais savoir si vous pouviez m'aiguillez sur le fait de simplifier ce code ?
Merci par avance.
//Enregistrement de 30 pokemon dans une table pour affichage au joueur $nbr_poke = 0 ; while( $nbr_poke < 30) { $taux_poke = rand(1,100); if ($taux_poke <= 50) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "1"'); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,15); $niveau = rand(12,18); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } } elseif (($taux_poke >= 51) && ($taux_poke <=70)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "2"'); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,15); $niveau = rand(9,14); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } } elseif (($taux_poke >= 71) && ($taux_poke <=85)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "3"'); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,15); $niveau = rand(5,11); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } } elseif (($taux_poke >= 86) && ($taux_poke <=95)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "4"'); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,15); $niveau = rand(3,8); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } } else { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "5"'); $poke_entrer = $poke_affich_joueur->fetch(); $randChromatique = rand(1,15); $niveau = rand(1,5); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } } $insert_poke_capture = $bdd->exec("INSERT INTO herbe (`no_poke`, `nom`, `lvl`, `sexe`, `chroma`) VALUES('".$poke_entrer['no_poke']."', '".$poke_entrer['nom']."', '".$niveau."', '".$sexe2."', '".$Chromatique."')"); $nbr_poke++; } header('location:test_affiche.php');
Cela fonctionne parfaitement avec ce que je cherche par contre j'aimerais savoir si vous pouviez m'aiguillez sur le fait de simplifier ce code ?
Merci par avance.
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
1 474
2 mai 2020 à 22:11
2 mai 2020 à 22:11
la première chose à faire et de sortir du if tout ce qui est identique dans les différents cas.
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
>
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
2 mai 2020 à 22:54
2 mai 2020 à 22:54
e suis d'accord avec toi mais par exemple le niveau ou le sexe doit être calculer à chaque tours du while par exemple tous comme la caractéristique chromatique.
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
1 474
>
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
3 mai 2020 à 09:58
3 mai 2020 à 09:58
ce qui ne nécessite pas de l'avoir dans chaque condition du if. tu peux le mettre entre la fin du if et la fin du while.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
Modifié le 3 mai 2020 à 16:50
Modifié le 3 mai 2020 à 16:50
Ah oui je comprend je vais faire ça.
Tu vois autre chose pour améliorer et réduire le code ?
Voici ce que j'ai fais pour le moment :
Tu vois autre chose pour améliorer et réduire le code ?
Voici ce que j'ai fais pour le moment :
$select_time_actu = $bdd->query("SELECT * FROM temps_actu WHERE time")->fetch(); $time_derniere_actu = $select_time_actu['time']; if(time() - $time_derniere_actu < 10) {} else { //Enregistrement de 30 pokemon dans une table pour affichage au joueur + update du temps de l'actu $update_time_actu = $bdd-> exec("UPDATE temps_actu SET time = '".time()."'"); $vider_table = $bdd->exec("TRUNCATE herbe"); $map = "Nazaris"; $nbr_poke = 0 ; while( $nbr_poke < 30) { $taux_poke = rand(1,100); $sexe = rand(1,2); if ($sexe == 1) { $sexe2 = 'Male'; }elseif ($sexe == 2) { $sexe2 = 'Femelle'; } else { $sexe = 'Inconnu'; } if($randChromatique == 1) { $Chromatique = "chromatique"; } else { $Chromatique = ""; } $randChromatique = $chance_chroma; if ($taux_poke <= 50) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "1" && map="'.$map.'"'); $poke_entrer = $poke_affich_joueur->fetch(); $niveau = rand(12,18); } elseif (($taux_poke >= 51) && ($taux_poke <=70)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "2" AND map="'.$map.'"'); $poke_entrer = $poke_affich_joueur->fetch(); $niveau = rand(9,14); } elseif (($taux_poke >= 71) && ($taux_poke <=85)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "3" AND map="'.$map.'"'); $poke_entrer = $poke_affich_joueur->fetch(); $niveau = rand(5,11); } elseif (($taux_poke >= 86) && ($taux_poke <=95)) { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "4" AND map="'.$map.'"'); $poke_entrer = $poke_affich_joueur->fetch(); $niveau = rand(3,8); } else { $poke_affich_joueur = $bdd->query('SELECT * FROM selec_poke WHERE taux = "5" AND map="'.$map.'"'); $poke_entrer = $poke_affich_joueur->fetch(); $niveau = rand(1,5); } $insert_poke_capture = $bdd->exec("INSERT INTO herbe (`no_poke`, `nom`, `lvl`, `sexe`, `chroma`, `map`) VALUES('".$poke_entrer['no_poke']."', '".$poke_entrer['nom']."', '".$niveau."', '".$sexe2."', '".$Chromatique."', '".$map."')"); $insert_poke_capture_archive = $bdd->exec("INSERT INTO archive_herbe (`no_poke`, `nom`, `lvl`, `sexe`, `chroma`, `map`) VALUES('".$poke_entrer['no_poke']."', '".$poke_entrer['nom']."', '".$niveau."', '".$sexe2."', '".$Chromatique."', '".$map."')"); $nbr_poke++; } } header('location:test_affiche.php');
yg_be
Messages postés
22861
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2024
1 474
3 mai 2020 à 17:13
3 mai 2020 à 17:13
il serait plus clair d'inverser le test des lignes 3 à 5, pour éviter le else.
l'instruction fetch peut sortir du if.
l'instruction query peux aussi sortir du if, il suffit de mémoriser le taux.
l'instruction fetch peut sortir du if.
l'instruction query peux aussi sortir du if, il suffit de mémoriser le taux.
David987
Messages postés
121
Date d'inscription
samedi 19 décembre 2015
Statut
Membre
Dernière intervention
16 octobre 2022
1
3 mai 2020 à 17:19
3 mai 2020 à 17:19
D'accord, merci beaucoup pour ton aide.