IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment ordonner des articles "à la main" ?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Comment ordonner des articles "à la main" ?
    Bonjour,

    Pouvez-vous me conseiller une méthode pour ordonner des articles ?

    J’ai un site en php.

    Je peux créer des articles et les ordonner non par date mais par numero. Dans le back office, l’utilisateur peut cliquer sur des boutons pour changer l’ordre des "numero". C’est le même système que sur joomla par exemple.

    Voilà comment j’ai fait. J’ai créé dans la table article une colonne numero. A chaque fois qu’un article est créé, j’incrémente "numero". Ensuite, les boutons pour changer l’ordre change simplement la liste de numéro.
    Par exemple, article n°1 devient n°2 et article 2 devient n°1

    Voila un extrait de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bdd->exec('UPDATE table_exemple SET numero = numero-1 WHERE numero = '.($numero+1).' AND categorie_id = '.$categorie.'');     
    		$bdd->exec('UPDATE table_exemple SET numero = numero+1 WHERE id = '.$id.' AND categorie_id = '.$categorie.'');

    En front office, je trie les articles par numero.

    Ça fonctionne très bien.

    Mais je voudrais ajouter une fonction supprimer article dans le BO. Ça fonctionne mais en revanche cela me crée un trou dans ma liste de numero.

    Ma liste peut ainsi devenir 1, 2, 4

    Et ma fonction pour ordonner ne fonctionne plus.

    Est ce vous avez une meilleure méthode pour ordonner les articles ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    c'est une méthode que j'utilise pour numéroter des photos.

    Après la suppression, il suffit de faire un UPDATE des articles, en les renumérotant.

    Du genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // requete de tous les articles, ordonnés par leur numéro
    $reqAll = "SELECT * FROM TableArticles  ORDER BY num ASC;";
    $bdd->exec($reqAll);
    // [...]
    $num = 1; // initialisation : nouveau numéro
    foreach ($rowsAll as $row) {
      // on remplace par le nouveau numéro
      $reqUpdate = "UPDATE TableArticles SET num = '".$num."' WHERE id = '".$row['id']."';";
      $bdd->exec($reqUpdate);
      $num++; // incrémentation du compteur
    }
    Simple et efficace.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Simple et efficace.

    Merci, c’est parfait !

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Ou en une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // $deletedNum = le numéro de l'article supprimé
    $reqUpdate = 'UPDATE TableArticles SET num = num - 1 WHERE num > ' . $deletedNum . ';';
    $bdd->exec($reqUpdate);
    Tu économises autant de requêtes que tu as d'articles...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci, encore plus simple !

Discussions similaires

  1. [Entité-Association] Comment grouper des articles équivalents
    Par keokaz dans le forum Schéma
    Réponses: 4
    Dernier message: 10/03/2010, 19h13
  2. Comment référencer des articles de ce type?
    Par hnouna2007 dans le forum Etudes
    Réponses: 1
    Dernier message: 09/10/2009, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo