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

PHP & Base de données Discussion :

Trier les résultats en fonction d'une colonne ordre [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut Trier les résultats en fonction d'une colonne ordre
    bonjour,

    j'ai la talbe suivante qui contient a plat la liste de mes referentiels et mes chapitres, chaque chapitre est au sein d'un referentiel qui est specifie par la colonne parent id



    en fait je sais pas comment faire pour que lors de l'insertion les ordres soient inseres comme dans la partie ecrite en rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $sq4= "insert into standard_bloc (id,libelle, id_concept,ordre, parent_id) 
    			 values (".$tab1[$key1].",'".$libelle_ref."', 1,0, null)";
    $res_sq4 = db_send_query("impossible d'inserer les valeurs dans la table standard_bloc",$sq4,'debug');
     
     
    $sq3= "insert into standard_bloc (id,libelle, id_concept,ordre, parent_id) 
    			 values (".$tab2[$key2].",'".$nom_chap."', 2, 0, '".$tab1[$ref_chap]."')";
    $res_sq3 = db_send_query("impossible d'inserer les valeurs dans la table standard_bloc",$sq3,'debug');
    quelque'un a une piste?

    merci

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Elle sert à rien cette colonne si c'est pour afficher ton résultat de cette façon

    Un simple
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ..... ORDER BY id_concept, id

    Devrait donner le même résultat

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    en fait la elle ne sert a rien c'est vrai
    mais je la cree dans le but ensuite lorsque tout sera mis en place de pouvoir changer l'ordre de maniere dynamique avec des boutons monter et desecendre dans une interface

    mais lors de l'insertion des lignes vous ne savez pas comment je peux faire pour qu'ils soient bien remis a zero quand je passe a un autre parent?

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Salut,
    tu peux récupérer le max ordre en fonction du parent_id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "SELECT MAX(ordre) as ordre_max FROM table WHERE parent_id=".$parentId;
    $res = mysql_query($sql);
    $row = mysql_fetch_assoc($res);
    $ordre = $row['ordre_max'] + 1;
    ensuite tu fais tes requêtes d'insertion avec $ordre. (y a ptetre moyen de faire ca en une seule requête avec une sous-requête, ca dépend de ta version de MySql)
    Bye
    Vive les roues en pierre

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    un grand grand merci! je commence a comprendre un peu le principe de ces requetes

    j'ai mis ca dans une boucle while et ca me met a jour l'ordre en n'ecrivant qu'une seule ligne

    merci

    a++

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    j'ai constate un truc qui ne va pas en fait, comme ma table est une table a plat qui contient des chapitres et des referentiels et que chaque chapitre se situe au sein d'un referentiel , l'ordre est bien mis a jour vu que le parent n'est pas null, mais pour les referentiels qui n'ont pas de parent , si j'ecris la meme requete mais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    parent_id =null";
    ca ne marche pas tous les ordres sont a 1 et ne s'increment pas

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Pour une valeur nulle, il ne faut pas utiliser le signe = mais IS

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .... WHERE champ IS NULL

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    merci!!

    je vais aller revoir un peu la syntaxe du lanage php

    a++

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    bonjour

    excusez moi de faire reaparraitre ce meme topic mais je n'arrive pas a faire un truc

    en fait, ma table c'est la table standard contenant la colonne ordre bien mise a jour mais imaginons je supprime un chapitre , quelle est la requete update que je dois ecrire pour que tous ceux qui sont apres le chapitre supprimé , leur ordre se mette a jour en decrementant de un?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/07/2010, 12h06
  2. [Lucene] Trier les résultats d'une recherche
    Par madjidri dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 29/11/2008, 16h31
  3. Trier les résultats d'une requête à l'aide d'un listbox
    Par magoo33 dans le forum Coldfusion
    Réponses: 2
    Dernier message: 17/11/2008, 22h27
  4. Réponses: 1
    Dernier message: 11/02/2008, 16h45
  5. [MySQL] Trier les résultats résultant d'une BDD
    Par florent dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/12/2005, 20h22

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