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 :

réorganisation des positions


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 16
    Points
    16
    Par défaut réorganisation des positions
    Bonjour,

    J’ai deux tables :
    Une table élève
    Une table formation

    Un élève peut choisir plusieurs formations

    La table formation contient :
    Id_formation, id_eleve, nom_formation et la position.

    Je souhaite lorsque l’élève enregistre une formation avoir comme valeur 1 pour la 1ère formation, 2 pour la 2ème, etc et que lorsqu’ il supprime une formation que les positions soit réorganisé dans un ordre logique, c'est à dire que si j'ai 1,2,3 et qu’il supprime 1, alors 2 devient 1, et 3 devient 2 et ainsi de suite.
    Comment faire ?

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour,

    En SQL avec un ORDER BY ASC

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    merci
    Avec order by je ne vois pas, je ne me suis peut etre pas bien exprimée.
    je souhaite mettre à jour chancun des enregistrements dans la base pour un élève. Je souhaite faire cette maj par un update au moment ou l'élève enregsitre ou supprime un choix.
    Exemple :
    formation_id, eleve_id, nom formation, position
    1, 1, formation1, 1
    2, 1, formation2, 2
    3, 1, formation3, 3

    il supprime la formation1
    je veux obtenir dans ma base la maj des positions

    2, 1, formation2, 1
    3, 1, formation3, 2

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    On apprécie la censure ! ...hégémonie quand tu nous tient...

    Je ne crois pas que les règles de ce forum interdisent l'utilisation d'un lien externe permettant de résoudre le problème demandé .J'attends donc des explications de la part du modérateur car en relisant les règles :

    Évitez aussi de poster un lien seul sans aucun commentaire. D'une part, il est préférable de donner une réponse sur le forum plutôt que de renvoyer vers un autre site qui renvoie potentiellement vers encore un autre, etc. D'autre part, les liens conduisent le plus souvent à une documentation complexe et fastidieuse à lire même pour celui qui cherche une réponse. De plus, la plupart des liens deviennent "morts" après moins d'un an, ce qui rend la solution indisponible pour quiconque ferait une recherche sur le forum par la suite.
    On remarque qu'il faut éviter de mettre en lien externe sans texte complémentaire, chose que je n'avais pas faite. De plus, il me semble que le mot "éviter" n'est pas similaire au mot" interdire". Voilà pour le coup de gueule.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    merci Héretik j'ai pu avoir le lien et tu ne pouvais copier ici tout le texte de la vidéo

  6. #6
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 51
    Points
    51
    Par défaut
    il va te falloir faire une boucle en php...d'abord tu cherche dans ta table toutes les lignes qui ont le bon eleve_id et ensuite tu boucle sur les résultats pour faire des update de chaque ligne...ca pourrai donner quelque chose du genre:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sqlquery = "SELECT *
    		FROM formation
    		WHERE eleve_id= ".$mon_id."
    		";
    $result = db_query( $sqlquery );
    while( $row = mysql_fetch_array( $result ) ){
    	$position=$row['position']-1;
    	$sqlupdate= "UPDATE formation
    					SET position =  ".$position."
    					WHERE formation_id = ".$row['formation_id']"
    				";
    	$result_update = db_query( $sqlupdate );
    }

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Citation Envoyé par francinego Voir le message
    Bonjour,

    J’ai deux tables :
    Une table élève
    Une table formation

    Un élève peut choisir plusieurs formations
    Je pense que tu as mal conçu ta base.
    Tu devrais avoir 3 tables au lieu de 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - t_eleve(#id, nom, prenom, genre...) : Liste des élèves
    - t_formation(#id, nom, duree...) : Liste des formations
    - t_inscription(#id, id_formation, id_eleve, position...) : Liste des inscriptions ordonnées par élève
    Cela donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
     
    // ajout d'une formation ayant une position déjà allouée :
    // on incrémente de 1 la position de toutes les formations suivantes
    // et on procède à l'ajout
     
    $idEleve  = 125;
    $position = 2;
     
    $sql = <<<SQL
    UPDATE
       t_inscription
    SET
       position = position + 1
    WHERE
       t_inscription.id_eleve = $idEleve
       AND position >= $position
    SQL;
     
    $sql = <<<SQL
    INSERT INTO 
       t_inscription (id_formation, id_eleve, position)
    VALUES (
       $idFormation, $idEleve, $position
    )
    SQL;
     
     
     
    // suppression d'une formation : repositionnement des formations restantes
    $sql = <<<SQL
    DELETE FROM
       t_inscription
    WHERE
       t_inscription.id = $idInscription
    SQL;
     
    $sql = <<<SQL
    UPDATE
       t_inscription
    SET
       position = position - 1
    WHERE
       t_inscription.id_eleve = $idEleve
       AND t_inscription.position > $position
    SQL;
     
    ?>

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    merci pour vos réponses je vais les tester.
    modeliser la base autrement (avec 3 tables) est aussi une bonne idée.

Discussions similaires

  1. [8i][9i] Réorganisation des bases
    Par Débéa dans le forum Oracle
    Réponses: 2
    Dernier message: 01/02/2006, 13h41
  2. [XSL] Réorganisation des données
    Par castaka dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/10/2005, 13h34
  3. [XSLT] Réorganisation des données
    Par castaka dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2005, 18h24

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