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 :

Listes n'affichant pas toujours exactement les valeurs correspondantes aux enregistre


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Points : 44
    Points
    44
    Par défaut Listes n'affichant pas toujours exactement les valeurs correspondantes aux enregistre
    Bonjour ,
    je voudrais vous faire part d'un problème auquel je suis confronté.
    En fait,je veux afficher les données d'une table pour en permettre des modifications. Parmi ces infos, il y en a 2 qui sont des listes deroulantes alimentées par d' autres tables.Mon probleme se situe à ce niveau. elles n'affichent pas toujours exactement les valeurs correspondantes aux enregistrements.
    Voici des bouts de code pour ces listes:
    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
    <?php
    //pour remplir les combobox
    function listbox ( $name , $tableau_valeur = array() , $tableau_nom = array(), $valeur_selectionne)
        {
            $selection = '<select name="' . $name . '" size="1">' ;
            	$compteur = 0;
                foreach ( $tableau_valeur as $key => $value )
                {
    				if ($valeur_selectionne==$value)
    				{
    					$selection = $selection . '<option value="' . $value . '" selected="selected" >' . $tableau_nom[$compteur] . '</option>' ;
    					$compteur = $compteur + 1;
    				}
    				else
    				{
    					$selection = $selection . '<option value="' . $value . '">' . $tableau_nom[$compteur] . '</option>' ;
    					$compteur = $compteur + 1;
    				}
                }
     
            return $selection;
    }
     
    ?>
    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
     <?php  
     
    					$sqldesign = "SELECT designation FROM `fonction` ";
    					$resultdesign = mysql_query( $sqldesign);
    					$design = array() ;
    					while ( $designrow = mysql_fetch_assoc ( $resultdesign) )
    						{
    							$design[] = $designrow['designation'] ;
    						}
     
    					$sqlcode = "SELECT codefonction FROM `fonction` ";
    					$resultcode = mysql_query( $sqlcode );
    					$code= array() ;
    					while ( $coderow = mysql_fetch_assoc ( $resultcode) )
    						{
    							$code[] = $coderow['codefonction'] ;
    						}
     
     
    					echo listbox ( 'txtfonction' , $code, $design, $row['codefonction'] ) ; 
     
    ?>			 
    </td>	 
    	   </tr>
    	   <tr>
    	       <td style="font-size:22px;">Assurance:</td>
    		   <td>
    		  <?php  
     
    					$sqllib = "SELECT libtypass FROM `type_assurance` ";
    					$resultlib = mysql_query( $sqllib );
    					$ib= array() ;
    					while ( $librow = mysql_fetch_assoc ( $resultlib) )
    						{
    							$lib[] = $librow['libtypass'] ;
    						}
     
    					$sqlcod= "SELECT codtypass FROM `type_assurance` ";
    					$resultcod = mysql_query( $sqlcod );
    					$cod = array() ;
    					while ( $codrow = mysql_fetch_assoc ( $resultcod ) )
    						{
    							$cod[] = $codrow['codtypass'] ;
    						}
     
     
    					echo listbox ( 'txttypass' , $cod, $lib, $row['codtypass'] ) ; 
     
    ?>
    Merci de m'accorder de votre temps

  2. #2
    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
    C'est quand même absurde de faire une requete pour les id et une requete pour les noms.
    Je te propose même de passer uniquement ta requête a ta fonction, tu economiseras l'ecriture mysql :

    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
    <?php
    //pour remplir les combobox
    function listbox ( $name, $sql, $valeur_selectionne)
        {
     
            $output = '<select name="' . $name . '" size="1">' ;
    $result = mysql_query($sql);
    while ($row = mysql_fetch_row($result) )
     
    				if ($valeur_selectionne==$row[0])
    				{
    					$selection = ' selected="selected" '; 
                                   }
                                   else {
                                           $selection = '';
                                    }
     
                              $output .=  '<option value="' . $row[0] . '"' . $selection . '>' . $row[1] . '</option>' ;
     
                }
     
            return $output;
    }
     
    $sql = "SELECT codtypass, libtypass FROM `type_assurance` "
    echo listbox ( 'txttypass' , $sql, $row['codtypass'] ) ; 
     
     
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Points : 44
    Points
    44
    Par défaut
    ça ne marche pas. erreur au niveau du echo
    Parse error: syntax error, unexpected T_ECHO in C:\xampp\htdocs\ivnet\modifagent.php on line 185

  4. #4
    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
    Un petit effort mon ami, je pense que tu arriveras a ajouter le point-virgule manquant a la ligne au dessus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Un petit effort mon ami, je pense que tu arriveras a ajouter le point-virgule manquant a la ligne au dessus.
    Ce n'est pas le point virgule qui pose probleme car je l'ai mis, mais pareil!

  6. #6
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Points : 44
    Points
    44
    Par défaut
    J'ai resolu le problème, merci. Mais j'ai encore une autre preoccupation: la modification ne marche pas alors que je crois avoir bien rentrer les variables

Discussions similaires

  1. valeurs de variable qui ne s'affichent pas toujours
    Par crazylia dans le forum MySQL
    Réponses: 2
    Dernier message: 22/04/2010, 16h00
  2. Réponses: 35
    Dernier message: 18/06/2007, 19h21
  3. Réponses: 3
    Dernier message: 22/04/2007, 00h45
  4. Réponses: 1
    Dernier message: 13/02/2007, 16h53
  5. Réponses: 9
    Dernier message: 04/10/2005, 19h39

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