Besoin d'aide pour une boucle For
Résolu/Fermé
AjaxMan
Messages postés
34
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
16 octobre 2016
-
24 sept. 2016 à 18:55
AjaxMan Messages postés 34 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 16 octobre 2016 - 24 sept. 2016 à 22:49
AjaxMan Messages postés 34 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 16 octobre 2016 - 24 sept. 2016 à 22:49
A voir également:
- Besoin d'aide pour une boucle For
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Idm for mac - Télécharger - Téléchargement & Transfert
- Whatsapp for pc - Télécharger - Messagerie
2 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
24 sept. 2016 à 20:30
24 sept. 2016 à 20:30
Bonjour,
Ta question est trop vague... (tu ne nous dis pas sur quoi tu bloques exactement.. ni ce que tu as déjà commencé à coder....)
Mais je peux te donner le principe :
Pour commencer... tu dois te connecter à ta BDD
Si tu ne sais pas faire... regardes ici comment utiliser faire
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
(perso.. je préfère la PDO)
Ensuite, tu fais une boucle .... (par exemple WHILE)
https://www.php.net/manual/fr/control-structures.while.php
Dans cette boucle, tu génères un numéro aléatoirement
Puis tu fais une requête (de type SELECT ) pour voir si le numéro existe déjà dans ta BDD ou non.
Si il existe déjà... tu recommences.... sinon.. tu sors de ta boucle.
Mais bon.. si ton but est de générer un "id" unique (et peu importe si il fait 13 caractères au lieu de 5...) dans ce cas tu peux utiliser : Uniqd
https://www.php.net/manual/fr/function.uniqid.php
Ta question est trop vague... (tu ne nous dis pas sur quoi tu bloques exactement.. ni ce que tu as déjà commencé à coder....)
Mais je peux te donner le principe :
Pour commencer... tu dois te connecter à ta BDD
Si tu ne sais pas faire... regardes ici comment utiliser faire
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
(perso.. je préfère la PDO)
Ensuite, tu fais une boucle .... (par exemple WHILE)
https://www.php.net/manual/fr/control-structures.while.php
Dans cette boucle, tu génères un numéro aléatoirement
Puis tu fais une requête (de type SELECT ) pour voir si le numéro existe déjà dans ta BDD ou non.
Si il existe déjà... tu recommences.... sinon.. tu sors de ta boucle.
Mais bon.. si ton but est de générer un "id" unique (et peu importe si il fait 13 caractères au lieu de 5...) dans ce cas tu peux utiliser : Uniqd
https://www.php.net/manual/fr/function.uniqid.php
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié par jordane45 le 24/09/2016 à 21:47
Modifié par jordane45 le 24/09/2016 à 21:47
.... mouais....
Bon.. déjà... ton script... ne génère pas 5 caractères... mais 7
Ensuite... si ton but est de générer un code aléatoire et unique.. pourquoi ne pas utiliser la fonction UNIQID comme je te l'ai déjà indiqué ?
Pour finir..
voila à quoi pourrait ressembler ton code :
Cordialement,
Jordane
Bon.. déjà... ton script... ne génère pas 5 caractères... mais 7
Ensuite... si ton but est de générer un code aléatoire et unique.. pourquoi ne pas utiliser la fonction UNIQID comme je te l'ai déjà indiqué ?
Pour finir..
voila à quoi pourrait ressembler ton code :
<?php //Affichage des erreurs PHP error_reporting(E_ALL); //fichier de connexion à la BDD require_once "cnxBdd.php"; function checkIfCodeExist($strCode){ global $db; $sql = "SELECT * FROM tatable where code = :strCode "; $datas = array(":strCode"=>$strCode); try{ $prep = $db->prepare($sql); $prep->execute($datas); $res = $prep->fetchAll(); }catch (Exception $e){ echo "Erreur ! ".$e->getMessage(); } return !empty($res) ? true : false ; } // début du code ... $hash = substr(sha1(md5(rand())), 5, 13); echo "<br> code avant la boucle : ".$hash; while(checkIfCodeExist($hash)){ echo "<br> code dans la boucle : ".$hash; $hash = substr(sha1(md5(rand())), 5, 13); } echo "<br> code final (après la boucle) la boucle : ".$hash; ?>
Cordialement,
Jordane
AjaxMan
Messages postés
34
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
16 octobre 2016
24 sept. 2016 à 22:49
24 sept. 2016 à 22:49
Hum intéressant, et ouais c'est vrai que c'est moins bête, uniqid joue avec le timestamp je suppose, pour ça que le début est le même mais le reste change .. je vais opter pour cette fonction merci :p
24 sept. 2016 à 20:42
Merci de ta réponse, je vais être plus clair.
J'ai déjà fait mon système pour générer une chaîne, je me suis déjà connecté, et je vois pas comment faire pour faire le while :hum: Comment en sortir si c'est bon ? Comment faire re-générer une chaîne si ça existe déjà ?
24 sept. 2016 à 20:44
A partir de là on pourra te proposer des solutions.
NB : penses à utiliser les balises de code : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
24 sept. 2016 à 21:00
24 sept. 2016 à 21:02
24 sept. 2016 à 21:23