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 :

Ne pas repeter 2 valeurs identiques d'une colonne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut Ne pas repeter 2 valeurs identiques d'une colonne
    bonjour
    j'ai un formulaire en PHP qui permet d'afficher les valeurs d'une colonne d'une table dans une liste déroulante
    le problème c'est que il m'affiche les valeurs identiques , mais moi je veux qu'il m'affiche les valeurs qui se ressemblent une seul fois
    par exemple j'ai plusieurs pièces qui ont le même fournisseur je veux que cet fournisseur s'affiche une seul fois dans la liste
    voila mon code
    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
     
    $query = "SELECT DISTINCT FOURNISSEUR,N  FROM sparesparts";
    $result = mysql_query($query) or die (mysql_error());
    ?>
    <form action="sparesparts.php" method="get">
    <p>Choisissez un Fournisseur : <select name="truc">
    <?php
    while($line = mysql_fetch_assoc($result)){
        echo '<option value="'.$line['N'].'">'.$line['FOURNISSEUR'].'</option>';
        }
    ?>
    </select>
    </p>
    <p><input type="submit" value="valider"  /></p>
    </form>

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Tu peux utiliser un tableau que tu remplis au fur et à mesure ET tu utilises in_array()

  3. #3
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut auteur
    mais moi je veux qu'il m'affiche les valeurs qui se ressemblent une seul fois
    par exemple j'ai plusieurs pièces qui ont le même fournisseur je veux que cet fournisseur s'affiche une seul fois dans la liste
    voila mon code

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Donc tu fais
    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
     
    $tableau = array();
    $query = "SELECT DISTINCT FOURNISSEUR,N  FROM sparesparts";
    $result = mysql_query($query) or die (mysql_error());
    ?>
    <form action="sparesparts.php" method="get">
    <p>Choisissez un Fournisseur : <select name="truc">
    <?php
    while($line = mysql_fetch_assoc($result)){
        if(!in_array($line['FOURNISSEUR'], $tableau)){
             echo '<option value="'.$line['N'].'">'.$line['FOURNISSEUR'].'</option>';
             $tableau[] = $line['FOURNISSEUR'];
         }
        }
    ?>

  5. #5
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut auteur
    OK ça marche mais maintenant j'ai un autre problème c'est que après je valide il m'affiche un seul enregistrement alors que moi je veux qui 'il m'affiche tous les enregistrements qui ont ce fournisseur
    et voila la page d'affichage
    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
    $query = "SELECT  * from sparesparts WHERE N= $id ";
    $result = mysql_query($query) or die (mysql_error());
    $total = mysql_num_rows($result);
     
     
      // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
          echo '<tr>';
          echo '<td bgcolor="#CCFF66"><b><u>N</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>CODE_ART</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>DESIGNATION</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>ARTICLE_FOURNISSEUR</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>FOURNISSEUR</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>IMAGE</u></b></td>';
          echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
          echo '<tr>';
          echo '<td bgcolor="#FFFFFF">'.$row["N"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["CODE_ART"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["DESIGNATION"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["ARTICLE_FOURNISSEUR"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["FOURNISSEUR"].'</td>';
          echo '<td  bgcolor="#FFFFFF"><a target="_blank" href="'.$row["IMAGE"].'">image</a></td>';
     
     
     
     
            echo '</tr>'."\n";
        }
            echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    C'est quoi N ?

    Elle est comment la table : Champs, valeurs ?

    Un exemple, merci

  7. #7
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut auteur
    N c’est le numéro auto incrément , la forme de la table est comme ça

    N: numéro auto incrément
    CODE_ART
    DESIGNATION
    ARTICLE_FOURNISSEUR
    FOURNISSEUR
    IMAGE

  8. #8
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Je m'en doutais un peu

    C'est sûr qu'avec la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = "SELECT  * from sparesparts WHERE N= $id ";
    tu n'auras qu'un enregistrement !!

    Il faut que dans ta liste, tu récupéres le fournisseur et non un id, puis ta requête, tu le fais avec.

  9. #9
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut auteur
    voila j'ai rectifier mon code
    le formulaire
    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
    $query = "SELECT DISTINCT FOURNISSEUR  FROM sparesparts";
    $result = mysql_query($query) or die (mysql_error());
    ?>
    <form action="sparesparts.php" method="get">
    <p>Choisissez un Fournisseur : <select name="FOURNISSEUR">
    <?php
    while($line = mysql_fetch_array($result)){
        if(!in_array($line['FOURNISSEUR'], $tableau)){
             echo '<option value="'.$line['FOURNISSEUR'].'">'.$line['FOURNISSEUR'].'</option>';
             $tableau[] = $line['FOURNISSEUR'];
         }
        }
    ?>
    </select>
    </p>
    <p><input type="submit" value="valider"  /></p>
    </form>
    et la page d'affichage
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?php
    //reception de la variable
    $id = isset($_GET['FOURNISSEUR']) ? $_GET['FOURNISSEUR'] : '';
     
    // information pour la connection à le DB
    // Connection au serveur mySQL
    $sql_serveur = "localhost"; // Serveur mySQL
    $sql_base = "xx"; // Base de donnees mySQL
    $sql_login = "xx"; // Login de connection a mySQL
    $sql_password = "xx"; // Mot de passe pour mySQL
    $nom_fichier = ""; // Nom de votre page
    @mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Connection interrompue");
    @mysql_select_db($sql_base); 
     
    //3- creation de la requete et excécution de la requete
    //**************************************
     
    $query = "SELECT  * from sparesparts WHERE FOURNISSEUR= $FOURNISSEUR ";
    $result = mysql_query($query) or die (mysql_error());
    $total = mysql_num_rows($result);
     // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
          echo '<tr>';
          echo '<td bgcolor="#CCFF66"><b><u>N</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>CODE_ART</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>DESIGNATION</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>ARTICLE_FOURNISSEUR</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>FOURNISSEUR</u></b></td>';
          echo '<td bgcolor="#CCFF66"><b><u>IMAGE</u></b></td>';
          echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
          echo '<tr>';
          echo '<td bgcolor="#FFFFFF">'.$row["N"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["CODE_ART"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["DESIGNATION"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["ARTICLE_FOURNISSEUR"].'</td>';
          echo '<td bgcolor="#FFFFFF">'.$row["FOURNISSEUR"].'</td>';
          echo '<td  bgcolor="#FFFFFF"><a target="_blank" href="'.$row["IMAGE"].'">image</a></td>';
     
     
     
     
            echo '</tr>'."\n";
        }
            echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    mais il m'affiche l'erreur:
    Notice: Undefined variable: FOURNISSEUR in C:\Program Files\EasyPHP-5.3.8.0\www\Nouveau dossier\sparesparts.php on line 25
    Erreur de syntaxe pr�s de '' � la ligne 1

  10. #10
    Membre éclairé
    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
    Par défaut
    Ta variable $fournisseur ne contient rien.

  11. #11
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut auteur
    c'est réglé j'ai remplacer FOURNISSEUR= $FOURNISSEUR par FOURNISSEUR='".$_POST["FOURNISSEUR"]."' et ca marché merci pour vous

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

Discussions similaires

  1. [XL-2007] Mettre en gras les valeurs identiques dans une colonne et d'une cellule
    Par bienreveille dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/08/2014, 22h38
  2. [Débutant] Compter des valeurs identiques sur une colonne Gridview
    Par dragoon25 dans le forum C#
    Réponses: 18
    Dernier message: 28/05/2014, 13h52
  3. [XL-2000] regrouper et compter les valeurs identiques d'une colonne excel
    Par noemieze dans le forum Excel
    Réponses: 2
    Dernier message: 24/04/2014, 12h24
  4. [XL-2010] Compter le nombre de valeurs identiques sur une feuille
    Par Yepazix dans le forum Excel
    Réponses: 5
    Dernier message: 10/07/2011, 00h26
  5. [MySQL] Compter le nombre de valeurs identiques dans une colonne d'une table
    Par luca120 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 00h40

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