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

SQL Procédural MySQL Discussion :

Recuperation variable champ selectionnable depuis mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut Recuperation variable champ selectionnable depuis mysql
    Bonjour, je possède une page d'inscription avec un champ selectionnable à 5 valeurs qui sont recherchées depuis une table( table statut). Ensuite lorsque je selectionne l'une de ces valeurs, celle-ci est ensuite enregistrée dans une seconde table (table agent).
    Maintenant je souhaite faire une page de modif qui affiche un champ selectionnable dans lequel l'option que l'on avait choisie s'affiche en préselection et que je peux modifier en re selectionnant dans ma liste.

    voici mon code :

    <?php

    Je recupere mon Id Statut

    $IdStatut=($data['IdStatut']);

    J'affiche tout les Statut et Id de la table Statut

    $query = "SELECT IdStatut, Statut FROM statuts ORDER BY Statut ASC";
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());


    Si mon IdStatut est vide j'affiche "selectionner"

    echo"<select name='IdStatut'>";

    if (($IdStatut=="") or ($IdStatut=="-1"))
    {
    echo "<option selected value='-1'>--------- S&eacute;lectionner ---------</option>";
    }

    else
    {
    $query = "SELECT Statut FROM statuts WHERE IdStatut='$IdStatut'";
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
    $data = mysql_fetch_array ($result);
    echo "<option selected value='$IdStatut'>".$data['Statut']."</option>";
    }

    while($ligne = mysql_fetch_array ($result))
    {extract($ligne);
    if (($IdStatut<>"") or ($IdStatut<>"-1"))
    echo "<option value='$IdStatut'>".$Statut."</option>";
    }
    echo "</select>";
    mysql_free_result ($result);
    ?>


    Mais cela n'affiche que le Statut correpondant à L'Id statut que j'avais stocké.

    En gros comment recupéré dans un champ selectionnable

    Merci de vos reponses

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

  3. #3
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    A mon avis c'est parce que tu écrase ta variable $result dans ton else.

    Construire un select d'après des données est chose courrante dans un
    site ou une application, si bien que je te recommande de créer une fonction
    pour cela. Voici celle que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function buildList($fname, $current, $values ) {
    	$html = "<select name='$fname'>\n";
    	foreach($values as $value => $caption) {
    		if(!$caption) $caption = $value;
    		$sel = $value == $current ? " selected='selected'" : '';
    		$html .= "<option$sel value='$value'>".htmlentities($caption)."</option>\n";
    	}
    	$html .= "</select>\n";
    	return $html;
    }
    $fname représente le nom du champ (attribut name de ton select)
    $current est la valeur actuellement sélectionnée
    $values est un tableau associatif avec des paires clé valeurs.

    Voici un exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $status = array('1'=>'Sta1', '2'=>'Sta2', '3'=>'Sta3');
    echo buildList('status', 2, $status);
    Il te suffit de préparer ton tableau de valeurs en allant lire ta table
    des status


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "SELECT IdStatut, Statut FROM statuts ORDER BY Statut ASC";
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error()); 
    while($rec = mysql_fetch_assoc($result)) $status[$rec['IdStatut']] = $rec['Statut'];

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    Merci, je vais essayer cela.

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

Discussions similaires

  1. [VxiR2] Champ LONGTEXT depuis MySQL
    Par dj_xizor dans le forum Designer
    Réponses: 2
    Dernier message: 16/08/2012, 08h12
  2. [DATA] Recuperer les champs de ta table dans une macro variable
    Par Deciprog dans le forum SAS Base
    Réponses: 5
    Dernier message: 04/05/2010, 11h05
  3. Réponses: 8
    Dernier message: 17/02/2009, 18h01
  4. Recuperer variable selectionne clic souris
    Par Shivas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/01/2009, 13h59
  5. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57

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