Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer des données dans Mysql

Sujet résolu
    9 mars 2007 à 21:45:34

    Bonsoir à tous,

    je n'arrive pas à récupérer en php des données pourtant présentes dans ma base Mysql.

    Les données sont enregistrées dans une table « ouvrages » à partir d’un formulaire qui contient en autre trois listes déroulantes (enseignées à partir de 3 tables différentes) et des champs texte.
    En ce qui concerne les champs texte, j’enregistre directement le texte saisi, pour ce qui est des listes déroulantes, j’enregistre l’id de l’option choisie.
    voici le code utilisé lors de l'enregistrement :


    $idgenre = $_POST['genre'];
    $titre = addslashes ($_POST['titre']);
    $auteur = addslashes ($_POST['auteur']);
    $editeur = addslashes ($_POST['editeur']);
    $annee = $_POST['annee'];
    $collection = addslashes ($_POST['collection']);
    $motscles = addslashes ($_POST['motscles']);
    $idlangue = $_POST['langue'];
    $idlocalisation = $_POST['localisation'];
    $infosuploc = addslashes ($_POST['infosuploc']);
                                   
    //On se connecte à la base de donnée
    mysql_connect("$host", "$user", "$password");
    mysql_select_db("$db");
                                   

    //on crée une nouvelle entrée
    mysql_query("INSERT INTO ouvrage VALUES('', '$idgenre', '$titre', '$auteur', '$editeur', '$annee', '$collection', '$motscles', '$idlangue', '$idlocalisation', '$infosuploc')") or die(mysql_error());


    Lorsque je consulte en direct les données avec phpmyadmin, je vois bien les informations que je viens de saisir.

    Mon problème apparaît lorsque je veux récupérer les id (issues des listes déroulantes) enregistrées dans la table ouvrage : les données ne s’affichent pas alors que les données issues des champs texte s’affichent très bien.
    Voici le code que j'utilise pour lire les donnees :


    mysql_connect("$host", "$user", "$password");
    mysql_select_db("$db");
                                   
    //on crée récupére les données
    $idouvragemodif = $_GET['modifier_ouvrage'];
    $retour=mysql_query("SELECT * FROM ouvrage WHERE ID_ouvrage = '$idouvragemodif'") or die(mysql_error());
    $donnees= mysql_fetch_array($retour);
        {
        //On détermine les valeurs
            $idgenre= trim ($donnees['genre_ouvrage']);
            $titre= stripslashes ($donnees['titre_ouvrage']);
            $auteur= stripslashes ($donnees['auteur_ouvrage']);
            $editeur= stripslashes ($donnees['editeur_ouvrage']);
            $annee= $donnees['annee_ouvrage'];
            $collection= stripslashes ($donnees['collection_ouvrage']);
            $motscles= nl2br(stripslashes ($donnees['motscles_ouvrage']));
            $idlangue= $donnees['langue_ouvrage'];
            $idlocalisation= $donnees['localisation_ouvrage'];
            $infosuploc= stripslashes ($donnees['infosuploc_ouvrage']);


    Pourriez-vous m'aider s'il-vous-plait?
    Merci beaucoup.
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2007 à 23:29:27

      Tu pourrais pas mettre ton code entierement, parce que la je vois pas de 'echo' donc rien ne s'affiche, donc met tout ;)
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2007 à 23:34:22

        Je suis pas sûr mais je crois que tu dois coller le stripslashes sur le (

        Bye
        • Partager sur Facebook
        • Partager sur Twitter
          10 mars 2007 à 0:42:04

          stripslashes c'est une fonction et tu peux ne pas coller la parenthèse des arguments au nom de la fonction aussi bien dans l'appel que dans la signature.
          Sinon j'ai remarqué que dans ton explications tu as écrit que ta table s'appelle <<ouvrages>> et dans ta requêtes tu mets From ouvrage (sans s), c'est peut-être ça. :D
          • Partager sur Facebook
          • Partager sur Twitter
            10 mars 2007 à 9:39:00

            (edit): j'ai trouvé la solution: en fait j'avais omis le "while" dans ma requête. Merci à tous de votre aide. :magicien:

            Merci pour vos réponses.

            RS2: en fait la faute est dans l'énoncé, la table s'appelle bien "ouvrage" (sans s)

            adrien: voici le code en entier (avec affichage):



            //On se connecte à la base de donnée
            mysql_connect("$host", "$user", "$password");
            mysql_select_db("$db");
                                           
            //on crée une nouvelle entrée
            $idouvragemodif = $_GET['modifier_ouvrage'];
            $retour=mysql_query("SELECT * FROM ouvrage WHERE ID_ouvrage = '$idouvragemodif'") or die(mysql_error());

            $donnees= mysql_fetch_array($retour);
                    {
                    //On détermine les valeurs
                    $idgenre= $donnees['genre_ouvrage'];
                    $titre= stripslashes ($donnees['titre_ouvrage']);
                    $auteur= stripslashes ($donnees['auteur_ouvrage']);
                    $editeur= stripslashes ($donnees['editeur_ouvrage']);
                    $annee= $donnees['annee_ouvrage'];
                    $collection= stripslashes ($donnees['collection_ouvrage']);
                    $motscles= nl2br(stripslashes ($donnees['motscles_ouvrage']));
                    $idlangue= $donnees['langue_ouvrage'];
                    $idlocalisation= $donnees['localisation_ouvrage'];
                    $infosuploc= stripslashes ($donnees['infosuploc_ouvrage']);
                    }
                                   
            ?>

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
               <head>
                   <title>Modifier un ouvrage</title>
                   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="../design/design.css" />
                       
                    <script type="text/javascript">
                            function OuvrirFenetre(url,nom,details) {
                             window.open(url,nom,details)
                            }
                    </script>

                       
               </head>
               <body>
                   <div id="en_tete_index">
                                    <!-- Ici on mettra la bannière -->
                            </div>

                            <div id="menu">
                                    <?php
                                    include("../modulesdeco/menu.php")
                                    ?>
                            </div>
                           
                            <div id="images">
                                    <?php
                                    include('../modulesdeco/menuajoutouvrage.php')
                                    ?>
                            </div>

                            <div id="corps">               
                           
                                   
                                    <?php
                                    echo 'genre ouvrage : '.$idgenre;
                                    echo '<br/> titre ouvrage : '.$titre;
                                    echo '<br/> auteur ouvrage : '.$auteur;
                                    echo '<br/> editeur ouvrage : '.$editeur;
                                    echo '<br/> annee ouvrage : '.$annee;                  echo '<br/> collection ouvrage : '.$collection;   
                                    echo '<br/> mots cles ouvrage : '.$motscles;   
                                    echo '<br/> langue ouvrage : '.$idlangue;
                                    echo '<br/> genre ouvrage : '.$idlocalisation;
                                    echo '<br/> infossuploc ouvrage : '.$infosuploc;
                                    ?>
                                                           
                            </div>
               </body>
            </html>



            Ce que je ne comprends pas est que toutes les informations non-issues de listes déroulantes à la base (c'est-à-dire $titre, $auteur, $editeur, $annee, $collection, $motscles et $infosuploc) s'affichent bien.
            Si cela peut aider, mon "genre_ouvrage" et "langue_ouvrage" sont en tinyint(4) et "localisation_ourvage est un int(11).
            J'ai essayé de changer pour mettre en varchar, mais même problème.

            Merci de votre aide.
            • Partager sur Facebook
            • Partager sur Twitter

            Récupérer des données dans Mysql

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown