8768 sujets
Développement web côté serveur, CMS
http://dev.petitchevalroux.net/mysql/requete-select-random-sql-mysql.287.html
Comme dit dans la page, c'est pas spécialement optimisé... Peut-être qu'il serait préférable de récupérer toutes les entrées et d'utiliser rand() de Php et n'afficher que l'entrée en question.
Comme dit dans la page, c'est pas spécialement optimisé... Peut-être qu'il serait préférable de récupérer toutes les entrées et d'utiliser rand() de Php et n'afficher que l'entrée en question.
J'ai effectivement pris connaissance de cette fonctionnalité php mais cela ne correspond pas à ce que j'attend.
J'ai une table Clients dans laquelle chaque client se voit affecté d'un numero unique. Pour l'instant, ces numéros sont triés dans l'ordre croissant.
Ce que je souhaite, c'est modifier ma table pour que la colonne Numeros de client ne soit plus triée mais que les numeros se suivent dans un ordre aléatoire.
J'ai une table Clients dans laquelle chaque client se voit affecté d'un numero unique. Pour l'instant, ces numéros sont triés dans l'ordre croissant.
Ce que je souhaite, c'est modifier ma table pour que la colonne Numeros de client ne soit plus triée mais que les numeros se suivent dans un ordre aléatoire.
Salut,
Je ne vois vraiment pas le but du jeu puisque s'il s'agit d'un identifiant cela a du sens d'utiliser l'auto-increment pour de multiples raisons comme la possibilité de récupérer le dernier id créé ou l'assurance de l'unicité d'un identifiant.
Donc la question est : pour quoi faire ?
b3f3 a écrit :Du coup les numéros ne se "suivraient" plus !
Ce que je souhaite, c'est [...] que les numeros se suivent dans un ordre aléatoire.
Je ne vois vraiment pas le but du jeu puisque s'il s'agit d'un identifiant cela a du sens d'utiliser l'auto-increment pour de multiples raisons comme la possibilité de récupérer le dernier id créé ou l'assurance de l'unicité d'un identifiant.
Donc la question est : pour quoi faire ?
Heyoan a écrit :
Salut,
Du coup les numéros ne se "suivraient" plus !
Je ne vois vraiment pas le but du jeu puisque s'il s'agit d'un identifiant cela a du sens d'utiliser l'auto-increment pour de multiples raisons comme la possibilité de récupérer le dernier id créé ou l'assurance de l'unicité d'un identifiant.
Donc la question est : pour quoi faire ?
Effectivement, je ne suis pas très judicieux dans le choix des termes à employer.
Mais j'ai quand même trouvé une solution à mon problème.
Donc je vais essayer de vous réexpliquer mon problème et la solution que j'ai utilisée :
A la base, j'ai intégré dans une table le contenu d'un fichier excel contenant un grand nombre de lignes. Ces lignes étaient classées par ordre alphabétique du champ "nom". Un numero (champ id) correspondait à chaque ligne. Cet id était croissant au fil des lignes du tableau.
Mon but était de mélanger les ids pour qu'ils ne se suivent pas lorsqu'on fait un tri sur le champ nom.
J'ai tout de même conservé l'auto-increment sur le champ id. De cette manière, lorsqu'on ajoute une fiche, un nouvel id est automatiquement ajouté avec la valeur dernier_id+1
Pour ce faire j'ai utilisé php.
J'ai tout d'abord dupliqué la colonne id et je l'ai appellé temp.
J'ai déclaré une clé primaire sur temp.
J'ai fait une requete SELECT avec ORDER BY RAND() pour récupérer les valeurs de id et les ranger dans un ordre aléatoire.
J'ai mis ces données dans un Array php.
Puis avec une boucle for, j'ai fait une requete UPDATE sur ma table pour remplacer les id (qui jusque là sont classés dans un ordre croissant) par les id stockés dans mon Array (qui, eux, ne respectent aucun classement particulier).
J'ai ensuite supprimé la colonne temp de la table puis réactivé l'auto-increment sur la colonne id.
Voila voila.
merci.
Si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre.