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 :

Probleme champs d'une liste repetitifs [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Probleme champs d'une liste repetitifs
    Bonjour

    Voila j'ai creer un script pour modifier des clients dans une base de donnée !

    On selectionne le Nom et apres sa affiche les differentes informations du client selectionné !

    Voici le script qui selctionne le nom du client:
    Code php : 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
    59
    60
    61
    62
    63
    <table width="22%" border="1">
      <tr>
        <td width="64%"><p><a href="index.php">Accueil</a></p>
          <p><a href="CreationBase.php">Creer Base</a></p>
          <p><a href="creationClient.php">Creer un client</a></p>
          <p><a href="AffBase.php">Afficher Base</a></p>
          <p><a href="AffBaseParVille.php">Afficher Base par ville</a></p>
          <p><a href="modifierclient.php">Modifier un client</a></p>
          &nbsp;</td>
        <td width="36%">
          <?php
    // Configuration de la connexion à la base de données
    define('MYSQL_HOTE', 'localhost');
    define('MYSQL_UTILISATEUR', 'root');
    define('MYSQL_MOT_DE_PASSE', '');
    define('MYSQL_BASE_DE_DONNEES', 'AquaVendee');
     
    $nom = isset($_POST['Nom']) ? $_POST['Nom'] : '';
    $prenom = isset($_POST['Prenom']) ? $_POST['Prenom'] : '';
     
    // ...
     
    // Connexion à la base de donnée
    mysql_connect(MYSQL_HOTE, MYSQL_UTILISATEUR, MYSQL_MOT_DE_PASSE) or die('<h1>Connexion au serveur impossible !</h1>');
    mysql_select_db(MYSQL_BASE_DE_DONNEES) or die('<h1>Connexion impossible à la base</h1>');
    echo '<form method="post" action="valider.php">';
     
    // Affichage du langage choisi
    if ($nom) {
        $query = mysql_query("SELECT * FROM client WHERE Nom='$nom';") or die ( mysql_error() );
        $array = mysql_fetch_array($query);
       // echo 'Vous avez choisi le nom : ' . $array['Nom'];
    }
     
    // Début du script
    $query = mysql_query("SELECT Nom FROM client;") or die (mysql_error());
    if ($query) 
    {
        echo '<form method="post">';
        echo '<select name="Nom">';
        while ($array = mysql_fetch_array($query)) 
    	{
            if ($nom == $array["Nom"]) 
    		{
               echo '<option value="' . $array['Nom'] . '" selected>' . $array['Nom'] . '</option>';
            } 
    		else 
    		{
                echo '<option value="'.$array['Nom'] . '">' . $array['Nom'] . '</option>';
            }
        }
        echo '</select>';
        echo '<input type="submit" value="OK">';
        echo '</form>';
    }
     
     
     
    mysql_close();
    ?>
        </td>
      </tr>
    </table>

    Voici le script qui affiche en fonction du nom du client:
    Code php : 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    <?php 
     
    $nom=$_POST["Nom"];
     
    $f = mysql_connect ("localhost", "root", "");
     
    mysql_select_db ("AquaVendee");
     
    // Recuperation des valeurs des différents champs
     
    $req ="select Prenom from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $prenom = $arr['Prenom']; //prend la valeur de la clé Prenom 
     
    $req ="select Ville from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $ville = $arr['Ville']; //prend la valeur de la clé Prenom 
     
    $req ="select Adresse from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $adresse = $arr['Adresse']; //prend la valeur de la clé Prenom 
     
    $req ="select TypeApp from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $app = $arr['TypeApp']; //prend la valeur de la clé Prenom 
     
    $req ="select DateV from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $dv = $arr['DateV']; //prend la valeur de la clé Prenom 
     
    $req ="select DateMS from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $dms = $arr['DateMS']; //prend la valeur de la clé Prenom 
     
    $req ="select DateM from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $dm = $arr['DateM']; //prend la valeur de la clé Prenom 
     
    $req ="select Commentaire from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
    $com = $arr['Commentaire']; //prend la valeur de la clé Prenom 
     
     mysql_close($f); 
     
     ?> 
    <table width="50%" border="1">
      <tr> 
        <td width="34%"><p><a href="index.php">Accueil</a></p>
          <p><a href="CreationBase.php">Creer Base</a></p>
          <p><a href="creationClient.php">Creer un client</a></p>
          <p><a href="AffBase.php">Afficher Base</a></p>
          <p><a href="AffBaseParVille.php">Afficher Base par ville</a></p>
          <p><a href="modifierclient.php">modifier un client</a></p>&nbsp;</td>
        <td width="66%"><form method="post" action="insertionClient2.php" name="form2">
            <table width="94%" border="0">
              <tr> 
                <td width="53%">Nom</td>
                <td width="47%"> <input name="nom" type="text" id="nom" value="<?php echo"$nom"?>"> 
                </td>
              </tr>
              <tr> 
                <td>Prenom</td>
                <td> <input name="prenom" type="text" id="prenom" value="<?php echo "$prenom" ?>"> 
                </td>
              </tr>
              <tr> 
                <td>Ville</td>
                <td> <input name="ville" type="text" id="ville" value="<?php echo"$ville"?>"> 
                </td>
              </tr>
              <tr> 
                <td>Adresse</td>
                <td> <input name="adresse" type="text" id="adresse" value="<?php echo "$adresse" ?>">	
                </td>
              </tr>
              <tr> 
                <td>Type Appareil 
                <td> <input name="app" type="text" id="app" value="<?php echo "$app "?>"> 
                </td>
              </tr>
              <tr> 
                <td>Date Vente</td>
                <td> <input name="dv" type="text" id="dv" value="<?php echo "$dv" ?>"> 
                </td>
              </tr>
              <tr> 
    		  <tr> 
                <td>Date mise en Service</td>
                <td> <input name="dmes" type="text" id="dmes" value="<?php echo "$dms" ?>"> 
                </td>
              </tr>
              <tr> 
                <td>Date maintenance</td>
                <td> <input name="dm" type="text" id="dm" value="<?php echo "$dm"?>"> 
                </td>
              </tr>
    		  <tr> 
                <td>Commentaire</td>
                <td> <input name="com" type="text" id="com" value="<?php echo "$com"?>"> 
                </td>
              </tr>
            </table>
            <input name="submit" type="submit" value="OK">
          </form></td>
      </tr>
    </table>
    <p>&nbsp;</p>

    Mon probleme c'est que si il y a plusieurs fois le meme nom sa m'affiche plusieurs fois le nom dans la liste !

    Je souhaiterai qu'il n'y ai qu'une fois le meme nom !

    Par la suite j'essairai qu'en fonction du nom selectionner au debut tout les noms etant associer au nom saffiche dans une liste !

    Merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Distinct NOM from client

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci ! Sa marche NP !

    Et sinon tu aurai la solution pour la suite ( Quand je selectionne un nom sa me sorte tous les prenoms associés dans une autre liste comme celle pour Nom ) ??

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Il y a plusieurs posts récents dans le forum a propos des listes déroulantes liées, c'est un probleme assez... épineux !
    Il faut que tu lorsque l'utilisateur choisit un nom, tu postes le formulaire (avec un évènement onchange associée à ta combo) et que dans ton script tu regardes le nom choisi, tu as alors deux cas:
    1/ ce nom n'existe qu'une fois dans la base => traitement normal tu affiches les infos
    2/ ce nom existe plusieurs fois => tu crees une deuxieme combo que tu remplis avec la liste des prénoms, et donc tu auras encore besoin d'un evènement onchange pour poster le formulaire en réaction a cette liste la).

    Il faut surtout bien voir les différents cas.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Okay je vais etudier cela merci a vous

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    On va déjà limiter le nombre de requête à mysql et passer de 8 requêtes à une seul

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php 
     
    $nom=$_POST["Nom"];
     
    $f = mysql_connect ("localhost", "root", "");
     
    mysql_select_db ("AquaVendee");
     
    // Recuperation des valeurs des différents champs
     
    $req ="select * from client where Nom='$nom' ";
    $ok=mysql_query($req,$f); //retouve les données brutes
    $arr = mysql_fetch_array($ok); //prend la première ligne des résultats et transforme en tableau 
     
    $prenom = $arr['Prenom']; //prend la valeur de la clé Prenom 
    $ville = $arr['Ville']; 
    $adresse = $arr['Adresse']; 
    $app = $arr['TypeApp']; 
    $dv = $arr['DateV']; 
    $dms = $arr['DateMS']; 
    $dm = $arr['DateM']; 
    $com = $arr['Commentaire']; 
     
     mysql_close($f); 
     
     ?> 
    <table width="50%" border="1">
      <tr> 
        <td width="34%"><p><a href="index.php">Accueil</a></p>
          <p><a href="CreationBase.php">Creer Base</a></p>
          <p><a href="creationClient.php">Creer un client</a></p>
          <p><a href="AffBase.php">Afficher Base</a></p>
          <p><a href="AffBaseParVille.php">Afficher Base par ville</a></p>
          <p><a href="modifierclient.php">modifier un client</a></p>&nbsp;</td>
        <td width="66%"><form method="post" action="insertionClient2.php" name="form2">
            <table width="94%" border="0">
              <tr> 
                <td width="53%">Nom</td>
                <td width="47%"> <input name="nom" type="text" id="nom" value="<?php echo"$nom"?>"> 
                </td>
              </tr>
              <tr> 
                <td>Prenom</td>
                <td> <input name="prenom" type="text" id="prenom" value="<?php echo "$prenom" ?>"> 
                </td>
              </tr>
              <tr> 
                <td>Ville</td>
                <td> <input name="ville" type="text" id="ville" value="<?php echo"$ville"?>"> 
                </td>
              </tr>
              <tr> 
                <td>Adresse</td>
                <td> <input name="adresse" type="text" id="adresse" value="<?php echo "$adresse" ?>">	
                </td>
              </tr>
              <tr> 
                <td>Type Appareil 
                <td> <input name="app" type="text" id="app" value="<?php echo "$app "?>"> 
                </td>
              </tr>
              <tr> 
                <td>Date Vente</td>
                <td> <input name="dv" type="text" id="dv" value="<?php echo "$dv" ?>"> 
                </td>
              </tr>
              <tr> 
    		  <tr> 
                <td>Date mise en Service</td>
                <td> <input name="dmes" type="text" id="dmes" value="<?php echo "$dms" ?>"> 
                </td>
              </tr>
              <tr> 
                <td>Date maintenance</td>
                <td> <input name="dm" type="text" id="dm" value="<?php echo "$dm"?>"> 
                </td>
              </tr>
    		  <tr> 
                <td>Commentaire</td>
                <td> <input name="com" type="text" id="com" value="<?php echo "$com"?>"> 
                </td>
              </tr>
            </table>
            <input name="submit" type="submit" value="OK">
          </form></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    Pour ne prendre qu'un seul nom il faut mettre Limit 1 dans ta requête select.

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

Discussions similaires

  1. probleme d affichage une liste chainee
    Par lhagames dans le forum C
    Réponses: 10
    Dernier message: 25/03/2006, 11h33
  2. Récuperer le 2eme champ d'une liste déroulante
    Par priest69 dans le forum Access
    Réponses: 2
    Dernier message: 07/09/2005, 19h07
  3. Réponses: 5
    Dernier message: 27/05/2005, 17h10
  4. cmt selectionner tout les champ d'une liste deroulante
    Par mangamat dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2005, 10h08
  5. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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