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

Système d'épinglage

Mon_Poussin_2
Mon_Poussin_2
Niveau 7
17 juillet 2012 à 12:41:43

Salut salut,

Je fais une sorte de forum en ce moment histoire de me faire la main :hap:
Je réfléchissais à un système d'épinglage de sujets.

Mon idée c'était de rajouter un champ "type" dans ma table sujets, NULL par défaut.

Ensuite, loggué avec un compte admin, je pourrais changer la valeur de ce champ en cliquant sur un lien sur le sujet concerné.

Puis, j'affiche ma page avec les sujets grâce à deux requêtes :

La première appelle tous les sujets dont le type vaut l'épinglage (donc toujours en haut de la liste), s'il n'y en pas elle ne retourne rien.
Enfin, la seconde appelle tous les autres sujets, soumis aux up et paginés.

Ais-je bon ou y'a-t-il plus simple :question:

Merci.

3615_mylife
3615_mylife
Niveau 10
17 juillet 2012 à 14:06:16

Je pense que y'a moyen de faire en une seule requête mais c'est à y réfléchir.

Thymotep
Thymotep
Niveau 10
17 juillet 2012 à 14:37:16

Un order sur plusieurs champs ? Tu mets 0 ou 1, et tu fais un ORDER BY type DESC, date DESC

Il va d'abord trié par type, puis par date dans chaque type, sauf si tu fixe une position pour ceux épinglés :)

Tiddo
Tiddo
Niveau 10
17 juillet 2012 à 14:48:13

Colonne "sticky" en boolean.

Mon_Poussin_2
Mon_Poussin_2
Niveau 7
17 juillet 2012 à 23:34:41

Merci pour vos idées. Peux-tu développer ou filer un lien tiddo ? J'ai pas trouvé de résultats :(

vava740
vava740
Niveau 10
18 juillet 2012 à 08:28:32

Tu rajoute une colonne "sticky" à ta table, par exemple:

'id' => 7905319
'auteur' => 'Mon_Poussin_2'
'sujet' => 'Système d'épinglage'
'permalien' => 'systeme-d-epinglage'
'sticky' => false

Et si je fais le même exemple avec un topic épinglé:

'id' => 7901210
'auteur' => 'Thymotep'
'sujet' => 'REGLES du forum A LIRE avant de poster !'
'permalien' => 'regles-du-forum-a-lire-avant-de-poster'
'sticky' => true

Et quand tu fais un ORDER BY sticky DESC, date DESC, comme l'a dit Thymotep, tu auras d'abord tous ceux qui ont "sticky" en true en premier, et après les autres. :ok:

Au passage j'ai mis le pseudo de l'auteur, normalement on mettrait plutôt son id dans la table des utilisateurs, ce serait plus facile de s'y retrouver après :oui:

Tiddo
Tiddo
Niveau 10
18 juillet 2012 à 11:13:21

Voilà c'est exactement ça. :) Merci vava.

3615_mylife
3615_mylife
Niveau 10
18 juillet 2012 à 17:01:57

C'est bizarre mais c'est justement à cette méthode là que j'ai rêvé pendant la nuit. :noel:

Mon_Poussin_2
Mon_Poussin_2
Niveau 7
19 juillet 2012 à 20:42:38

Merci pour les détails, drôle de rêve :noel:

Charpini
Charpini
Niveau 9
20 juillet 2012 à 19:53:09

« Au passage j'ai mis le pseudo de l'auteur, normalement on mettrait plutôt son id dans la table des utilisateurs, ce serait plus facile de s'y retrouver après »

Euh tout le monde est d’accord avec ça ? Ça fait masse de requêtes en plus. Et accessoirement ça empêche de changer la casse de son pseudo.

deepblue
deepblue
Niveau 16
20 juillet 2012 à 20:17:56

Il existe des SGBD qui ne fonctionnent pas avec des modèles relationnelles. Ça dépend donc des besoins.

vava740
vava740
Niveau 10
20 juillet 2012 à 21:42:20

Comme l'a dit deepblue ça dépend de tes besoins, si tu as besoin que du pseudo, okay mets le pseudo directement dans la table des topics, mais si un jour tu veux savoir si l'auteur en question est un modo, connaître l'âge de l'auteur, l'image de profil, le nombre de jours, etc... c'est plus adapté d'avoir son id et de récupérer les infos dans la table des utilisateurs :oui:

3615_mylife
3615_mylife
Niveau 10
20 juillet 2012 à 21:46:22

Surtout qu'en mettant l'id tu peux proposé aux membres de modifier leur pseudo.

Charpini
Charpini
Niveau 9
21 juillet 2012 à 03:13:00

deepblue tu peux expliquer un peu plus stp ? :pf: (je sais pas ce qu’est un modèle relationnel)
Est-ce que ce dont tu parles existe parmis les SGBD qui ont un driver PDO dans un php de base ?

vava si tu commences à penser à tout les améliorations futures possibles tu t’en sors plus, tu peux très bien insérer les ids dans la table par la suite, quand tu en aura besoin.

3615_mylife
3615_mylife
Niveau 10
21 juillet 2012 à 09:28:48

Euuuuh, PDO est une extension de PHP qui permet de communiquer avec les SGBD, il n'y est pas lié directement.

T'indique à PDO lors de la connexion le type de SGBD (MySQL, Oracle, etc.) et ça roulera tous seul.

vava740
vava740
Niveau 10
21 juillet 2012 à 10:30:41

@Charpini: C'est pas que je pense à toutes les améliorations possibles et imaginables, c'est juste que j'essaie d'avoir une logique qui permette au site d'être évolutif et de pouvoir être maintenable sans se prendre la tête. :oui:

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