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 :

Classement


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut Classement
    Bonsoir,

    1/ Quel est la requête qui permet de basculer les données de la ligne 1 à la ligne 2 dans une basse de donnée Mysql.

    2/ Quel est la requête que permet de lister par ordre croissant (1,2,3,4,5, etc...)
    La requête suivant ne fonctionne pas, c'est dans le désordre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query("SELECT * FROM `modules_x10` ORDER BY `id` ASC ");
    Merci d'avance.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  2. #2
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    La requête suivant ne fonctionne pas, c'est dans le désordre.
    ce n'est pas qu'elle ne fonctionne pas, il faut extraire les lignes en utilisant les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $ligne=mysql_fetch_array($requete);//$ligne["champs1"] ou $ligne[0]
    //ou
    $ligne=mysql_fetch_assoc($requete);//$ligne["champs1"]
    //ou alors
    $ligne=mysql_fetch_object($requete);//$ligne->champs1
    à chaque appel à l'une de ces fonctions le curseur est déplacé à la ligne suivante
    toute l'affectation donnera vrai s'il y a une ligne d'extraite et faux sinon
    donc tu pourra l'utilise dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($ligne=mysql_fetch_array($requete))...
    pour ordonner les résultats utiliser la clause order by directement dans ta requête sql
    je te conseil d'aller consulter les cours de developpez.com sur php/mysql

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - une base de donnée n'est pas une feuille quadrillée, il n'y a pas de ligne 1 ou de ligne 2 : il n'y a que des lignes que tu sors de maniere ordonnée ou non.
    Tes lignes peuvent par contre avoir un index numérique mais pourquoi vouloir changer un index pour un autre et que veux-tu faire si l'index 2 existe déjà ?

    2 - Ton résultat est classé par id croissant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Nsanabi, c'est ce que j'ai fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query("SELECT * FROM `modules_x10` ORDER BY `id` ASC "); // Requête SQL
    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
    <?php
     
    while ($donnees = mysql_fetch_array($requete) ) // boucle pour lister tout ce que contient la table : modules_x10
    {
     
     
    ?>
      <tr>
        <th bgcolor="#CCCCCC" scope="row"><?php echo $donnees["nom_module"]; ?></th>
        <td bgcolor="#CCCCCC"><?php echo $donnees["code_maison_unité"]; ?></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="<?php echo $donnees["name-on"]; ?>"><input name="<?php echo $donnees["input_name_on"]; ?>" value="<?php echo $donnees["nom_commande_On"]; ?>" type="submit"></form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="<?php echo $donnees["name-off"]; ?>"><input name="<?php echo $donnees["input_name_off"]; ?>" value="<?php echo $donnees["nom_commande_Off"]; ?>" type="submit"></form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="A1-variateur+">
          <input name="A1-variateur+" value="<?php echo $donnees["variateur+"]; ?>" type="submit" />
        </form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="A1-variateur-">
          <input name="A1-variateur-" value="<?php echo $donnees["variateur-"]; ?>" type="submit" />
        </form></td>
      </tr>
      <?php } //toute la ligne est comprise dans la boucle while ?>
    </table>
    Sabotage, je veux dire deplacer les données de l'id 1 sur l'id 5.

    Merci
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  5. #5
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    je ne vois pas ce que tu cherche à faire, ton probleme n'est pas claire
    neamoins rectifier ton code :

    1- remplacer les " avec des ' dans $donnees
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //car ceci n'est pas correct comme le montre la coloration syntaxique du forum
    name="<?php echo $donnees["name-on"]; ?>"
    2- Une autre remarque , il ne faut pas nommer tes champs de ta table dans la base de données avec des caractères spéciaux comme tu le fais (variateur+, variateur-)
    3- et comme ya jamais 2 sans 3, pourquoi mettre plusieurs formulaires? un seul avec différents boutons aurai suffit
    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
     
    <?php
     
    while ($donnees = mysql_fetch_array($requete) ) // boucle pour lister tout ce que contient la table : modules_x10
    {
     
     
    ?>
      <tr>
        <th bgcolor="#CCCCCC" scope="row"><?php echo $donnees["nom_module"]; ?></th>
        <td bgcolor="#CCCCCC"><?php echo $donnees["code_maison_unité"]; ?></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="<?php echo $donnees['name-on']; ?>"><input name="<?php echo $donnees["input_name_on"]; ?>" value="<?php echo $donnees['nom_commande_On']; ?>" type="submit"></form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="<?php echo $donnees['name-off']; ?>"><input name="<?php echo $donnees['input_name_off']; ?>" value="<?php echo $donnees['nom_commande_Off']; ?>" type="submit"></form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="A1-variateur+">
          <input name="A1-variateur+" value="<?php echo $donnees['variateur+']; ?>" type="submit" />
        </form></td>
        <td bgcolor="#CCCCCC"><form method="post"
     action="" name="A1-variateur-">
          <input name="A1-variateur-" value="<?php echo $donnees['variateur-']; ?>" type="submit" />
        </form></td>
      </tr>
      <?php } //toute la ligne est comprise dans la boucle while ?>
    </table>

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par xunil2003
    Sabotage, je veux dire deplacer les données de l'id 1 sur l'id 5
    Déplacer ? C'est à dire ?
    Ce n'est pas très clair, un exemple aurait été pas mal.

    Si l'ordre des enregistrement dans une table ne peut être classés à l'aide d'une fonction ou autre instruction, alors une solution serait de créer un nouveau champ spécifique (genre : ordre) et de définir soit même l'ordre pour un affichage ultérieur.

    Pour afficher, suffit de faire la requête suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM modules_x10 ORDER BY ordre ASC
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Impossible de résoudre le classement en conflit de l'opérati
    Par jdeboer dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2011, 18h53
  2. [CR XI] Calcul d'un classement/rang
    Par silversatch62 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 06/08/2009, 11h29
  3. Classement membre sur 1 an
    Par kileak dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 24/10/2005, 15h45
  4. Classement dynamique
    Par El Jaguar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/08/2005, 14h33
  5. Classement daté
    Par Gzip dans le forum Linux
    Réponses: 7
    Dernier message: 26/04/2004, 22h56

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