PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Le $_POST me retourne l'ID et pas le nom ??? » 08-05-2011 16:42:48

Pardon pour le BBCode...

Merci pour la réponse

Oui, si j'ai créé plusieurs tables c'est que j'ai réfléchi un peu tongue

Je pensais plus à une fonction du genre...
Avant le INSERT TO dans ma base,
puisque je connais le n° ID de mon auteur, j'applique une fonction :
je vais lire dans la table t_auteurs le nom qui correspond à l'ID.
je transmet ce nom à "$auteur" et je l'insère...
Pas possible ?
Cela demande trop de temps ?
Je suis trop simpliste ?

Bonne soirée

#2 Forum Général PHP » Le $_POST me retourne l'ID et pas le nom ??? » 08-05-2011 16:42:48

jean_mi17
Réponses : 6

Bonjour,
et d'avance,  merci pour votre aide!!!

J'ai parcouru beaucoup de pages forum, sans trouver la réponse...
Ma syntaxe me semble correcte, mais je sèche...
une subtilité qui m'échappe...
Transformer la valeur de l'ID en nom de l'auteur?

Un problème simple je pense....

Mes tables sont créées correctement : 
Table : t_ouvrages avec champs  ID_ouvrage, Titre, Editeur, Auteur, etc...
Table : t_auteurs avec champs ID_auteurs, Auteur ;
Plus Tables t_editeurs, t_thematiques, le tout avec des liaisons, mais j'ai épuré pour cerner le PB.

La première partie du formulaire se passe bien et me donne la liste de tous les auteurs de la base
sous forme de liste déroulante.
Si j'en sélectionne un, <Rostand, Edmond>, il es t pris en compte.
Mais dans la seconde partie du formulaire,
le <<<< $_POST['Auteur'] ; >>> me renvoie ID_auteur soit n° "7" par exemple,
au lieu de Auteur soit "Rostand, Edmond" et donc inscrit
dans la base le chiffre "7" dans le champ "Auteur", au lieu de "Rostand, Edmond".

Oui, il me reste :
à mettre une condition pour vérifier que le champ est bien renseigné ;
à inclure une fonction "antislashes" je crois (notamment pour les apostrophes dans les titres);
et à revoir le CSS
j'essayerai de trouver cela ensuite...


------------------------------Premier fichier du formulaire--------------------------------------
<html>
<html><style type="text/css">
<!--
body,td,th {
  font-family: Verdana, Geneva, sans-serif;
  font-size: 14px;
  color: #FFFFFF;
  color:white;
  a:link {
          color: #FFFFFF;
          text-decoration: none;
  }
  a:visited {
          text-decoration: none;
         color: #FFFFFF;
      }

}
body {
  background-color: #000;
}
-->
</style>
<head>
    <title>Entrée d'un nouvel ouvrage</title>
  </head>
<body>
<?php
//on inclut le fichier connexion.php pour se connecter à la base de données :
include("connexion.php");
?>
<h2 align="center">INSERTION D'UN NOUVEL OUVRAGE DANS LA BASE BDDBOOKS</h2>
<br>
<form name="insertion" action="new_ouvrage2.php" method="POST">
  <table border="1" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td>Titre ouvrage</td>
      <td><input type="text" name="Titre" size="120" maxlength="250"></td>
    </tr>
    <tr align="center">
      <td>Auteur</td>
      <td align="left">
  <select name="Auteur">
  <option value "Sélectionner un auteur">Sélectionner un auteur</option>
  <?php
  $sql = "SELECT Auteur, ID_auteur FROM t_auteurs ORDER BY Auteur";
  $resultat = mysql_query ($sql) or die (mysql_error());
  while ($rang = mysql_fetch_array ($resultat)) {
      $ID_auteur = $rang['ID_auteur'];
      $auteur = $rang['Auteur'];
      echo "<option value=\"$ID_auteur\">$auteur</option>";
  }
  ?>
  </select>
      </td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="Insérer l'ouvrage"></td>
    </tr>
  </table>
</form>
<?php
?>
   <center>
    ou  <br><br>
    <a href="../index.php"><img src="../images/bt_retourmenu.jpg" alt="Bouton retour à l'accueil" width="113" height="23" border="0" /></a>
</center>
</body>
</html>
 

------------------------------Second fichier du formulaire--------------------------------------


<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bddbooks" ) ;
 
  //récupération des valeurs des champs:
  //Titre:
  $titre = $_POST['Titre'] ;
  //Auteur:
  $auteur = $_POST['Auteur'] ;
echo "$auteur"
// ici le echo me renvoie le ID et pas le nom sélectionné !!! ; //

  //création de la requête SQL:
  $sql = "INSERT  INTO t_ouvrages (Titre , Auteur )
            VALUES ( '$titre', '$auteur' ) "
;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
  {
    //header( 'Location: new_ouvrage_ok.php' );
  }
  else
  {
    echo("L'insertion à échouée") ;
  }
?>


Edit modération : Merci d'utiliser le bbcode pour mettre en forme les pâtés de code wink

Pied de page des forums

Propulsé par FluxBB