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 :

problème de SELECT (affiche l'id au lieu du champ "nom")


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut problème de SELECT (affiche l'id au lieu du champ "nom")
    Bonjour, il y a quelques temps j'ai utilisé un script (ajax) permettant à deux listes déroulantes de se mettre à jour en direct, chaque liste contient des noms, lorsque j'envoie le formulaire et avec l'action d'un INSERT, ma BDD récupère l'id des noms de ces listes plutot que leur nom , or j'ai beau vérifié mon INSERT envoie bien le champ nom , pourriez-vous m'aider à trouver ce problème ?

    voici les scripts correspondants à mon problème:
    edition.php :
    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
    <form method="post" action="ajoutbasedd.php" id="f" name="formulaire" enctype="multipart/form-data">
    <div id="adpdf">
    <table id="findpdf" width="100%" cellpadding="0" cellspacing="0;">
        <tr><td id="T" colspan="2"> Ajouter un document PDF/WORD à une section d'une catégorie</td></tr>
        <tr><td id="S">
        		<select name="cat" id="theme" onchange="getSections(this.value);"> 
          		<option value="vide" selected="selected">Selectionnez une Catégorie</option>
        		<?php	while($ligne = mysql_fetch_array($recherche)){	?>
        			<option value="<?php echo $ligne["idr"]; ?>" ><?php echo $ligne["theme"]; ?></option>
    			<?php	}	?>
        		</select>
           	</td>
            <td id="B"><span id="blocSections"></span><br /></td>
        </tr>
        <tr><!--<td id="S">Rechercher le document PDF/WORD à ajouter</td>--><td id="B" colspan="2"><input type="file" name="tdoc" size="50"/></td></tr>
     
    </table>
    </div>
    getSections(this.value) renvoie vers le fichier dept_xhr.js qui permet de communiquer entre deux page php en direct : la page est : section.php :
    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
    $sql2 = "SELECT `id_section`, `section`".
                " FROM `liste_section`".
                " WHERE `id_theme` = ". $idr ."".
                " ORDER BY `id_section`;";
        $connexion = mysql_connect($serveur, $admin, $mdp);
        mysql_select_db($base, $connexion);
        $rech_sect = mysql_query($sql2, $connexion);
        /* Un petit compteur pour les départements */
        $nd = 0;
        /* On crée deux tableaux pour les numéros et les noms des départements */
        $code_sect = array();
        $nom_sect = array();
        /* On va mettre les numéros et noms des départements dans les deux tableaux */
        while(false != ($ligne_sect = mysql_fetch_assoc($rech_sect)))
        {
            $code_sect[] = $ligne_sect['id_section'];
            $nom_sect[]  = $ligne_sect['section'];
            $nd++;
        }
        /* Maintenant on peut construire la liste déroulante */
        $liste = "";
        $liste .= '<select name="sect" id="section"><option value="vide" selected="selected">Selectionnez une Section</option>'."\n";
    	'';
        for($d = 0; $d < $nd; $d++)
        {
            $liste .= '  <option value="'. $code_sect[$d] .'">'. htmlentities($nom_sect[$d]) .'</option>'."\n";
        }
        $liste .= '</select>'."\n";
    enfin voici la page ajoutbasedd.php qui envoie les données à la BDD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $categorie = mysql_real_escape_string($_POST['cat']);
    			$section = mysql_real_escape_string($_POST['sect']);
     
     
    $serv = "INSERT INTO save(gdoc,theme,soussection,type) VALUES 
    			('".$doc_name."','".$categorie."','".$section."','".$tgdoc."')";

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je suis pas tout à fait sûre d'avoir compris ta question, mais ce qu'envoie ta liste déroulante ce sont les id des sections. Donc logiquement, ce qu'on insert à la récupération du formulaire ce sont les ids.
    Ce n'est pas ce que tu veux ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut
    Je souhaiterais récupérer les noms correspondant aux id, et je pensais que mon insert faisait ça.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    A priori, pas directement. En revanche, tu peux faire une jointure par la suite entre ta table save et ta table liste_section pour retrouver le nom lors des lectures sur la table save.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut
    très bien, cependant j'aimerais comprendre pourquoi dans le cas actuel je récupère les id aux lieu des noms puisque mon INSERT envoie (normalement) les noms et pas l'id du select (php-liste deroulante), pourriez-vous m'expliquez?

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Vu ton code, ton INSERT insert en base les données que lui envoie le formulaire, et ce que le formulaire envoie ce sont les ids des sections.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $section = mysql_real_escape_string($_POST['sect']);
     $serv = "INSERT INTO save(gdoc,theme,soussection,type) VALUES 
    			('".$doc_name."','".$categorie."','".$section."','".$tgdoc."')";
    Je ne vois pas trop où les noms interviennent là-dedans
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Problème de "select" avec des valeurs a null
    Par SchpatziBreizh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2005, 16h08
  2. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 11h19
  3. [XSL] Petit problème de selection d'un noeud
    Par Greg L. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2005, 09h39
  4. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55
  5. problème DBLookupListBox selection
    Par kardevlop dans le forum Bases de données
    Réponses: 11
    Dernier message: 17/08/2004, 11h53

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