CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP][MySQL] "Ordralfabétix" et type SET

CSACT
CSACT
Niveau 5
16 octobre 2014 à 19:16:00

Bonjour à tous,

j'ai mis dans le titre "Ordralfabétix" (comme dans Astérix ^^), car il n'y avait pas assez de place pour le mettre normalement ^^.

Donc, j'ai parmi les colonnes d'une table dans ma BDD, une colonne de type SET, qui peut prendre une ou plusieurs valeurs parmi les valeurs prédéfinies.
En l’occurrence, ces valeurs sont des noms d'anciennes consoles ("Megadrive", "NES", "SNES", etc.) sur lesquels d'anciens jeux sont sortis.

Je cherche à classer la liste de ces anciens jeux par console d'origine, dans l'ordre alphabétique des consoles (les jeux de Megadrive viendront avant les jeux NES, eux-mêmes avant les jeux SNES). J'écris donc le petit morceau de code classique ci-dessous :

https://wall.deblan.org/x1c14/php/1/

(j'ai juste mis le morceau de code qui nous intéresse ici)

Cependant, lorsque j'affiche la page web où le tableau apparaît, le classement des jeux par console d'origine a un petit problème.
Plus précisément, dans le cas des jeux sortis sur deux consoles (par exemple Megadrive et SNES), au lieu d'être classés avec les jeux de la première console dans l'ordre alphabétique (ici la Megadrive), ils sont classés avec les jeux de la seconde console (avec la SNES dans le cas présent).

Comment puis-je y remédier ?

Merci d'avance.

P.S. : Si je n'ai pas réussi à m'exprimer clairement, demandez-moi de poster une capture d'écran du tableau, ça sera peut-être plus parlant.

Bonne soirée.

keurlapinou
keurlapinou
Niveau 13
17 octobre 2014 à 00:31:44

ORDER BY console [ASC]; dans ta requête

J'ai lu en travers donc désolé si je fais fausse route :(

CSACT
CSACT
Niveau 5
17 octobre 2014 à 10:27:51

Bonjour et merci pour ta réponse, mais effectivement, tu fais fausse route.

En effet, j'utilise déjà cette méthode de tri dans ma requête, mais le résultat que ça me donne n'est pas optimal.
Je mets ma capture d'écran pour être plus clair.

http://img4.hostingpics.net/pics/368833triconsolenonoptimal.jpg

Comme on peut le voir, pour l'instant, j'ai très peu rempli la base de données, le but étant pour l'instant de tester les possibilités de tri avant de me mettre au remplissage de la base de données.

Donc, j'aimerais dans cet exemple que le jeu sorti sur "Arcade" et sur "NES" soit classé avec les jeux "Arcade" (lorsque la base de données sera plus conséquente et qu'il y en aura d'autre ^^⁾, pas avec les jeux "NES" ("Arcade" étant avant "NES" dans l'ordre alphabétique).
Même chose pour le jeu sorti sur "Megadrive" et sur "SNES".

Merci d'avance.

CSACT
CSACT
Niveau 5
18 octobre 2014 à 19:23:55

Bon, en bricolant un peu, avec beaucoup d'amateurisme et quelques recherches Google, j'ai fini par contourner le problème : plutôt que d'afficher les jeux sortis sur toutes les consoles par liste alphabétique des consoles (comme j'essayais de le faire précédemment), je n'affiche dans une requête que les jeux sortis sur une seule console, par exemple que les jeux sur NES.

Voici ce que ça donne dans cet exemple :

https://wall.deblan.org/x1c16/php/1/

Avec NomColonne1 étant dans mon exemple la colonne avec les noms des anciens jeux, et NomColonne2 la colonne avec les noms des anciennes consoles.

Petite explication :

La ligne 2 sélectionne les colonnes qui apparaîtrons dans le tableau quand il sera généré
La ligne 3 indique dans quelle table de la BDD se trouvent les données à récupérer.
Les lignes 4 et 5 sont là pour récupérer tous les jeux étant sortis sur NES. Je rappelle que, les jeux pouvant être sortis sur une ou plusieurs consoles, j'ai choisi un champ de type SET pour pouvoir gérer cette particularité dans la BDD, ce qui fait que dans le tableau (voir l'image ci-dessus), lorsqu'il y a plusieurs consoles, elles sont listées, séparées par des virgules (sans espaces, mais bon c'est pas trop grave), par exemple "Arcade,NES". Pour gérer cette conséquence, les % agissent ici comme un joker (comme les * dans d'autres langages), pour trouver tout ce qui contient "NES" dans les supports : j'ai rajouté une virgule avant le % à la ligne 5 pour éviter de récupérer en même temps les jeux SNES.
Enfin, la ligne 6 classe les résultats sur la NES par ordre alphabétique du titre des jeux.

Voila, problème résolu en ce qui me concerne.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment