Pb d'insertion d'une valeur de champ select dans une Bdd
Bonjour,
J'ai un formulaire avec plusieur champs , dont un ("choix") qui est une liste déroulante dynamique (TABLE "cat").
lorsque que je valide ce formulaire avec son script de traitement, il m'insère dans ma TABLE "doss" toutes les données du formulaire sauf celle du champ "choix". Il est censé récupérer l'ID d'une des entrées de la table CAT pour l'insérer dans une entré de la table "doss".
Voici en premier mon formulaire :
Code:
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
<?php include('header.php'); ?>
<html>
<head>
<title>insérer un dossier</title>
</head>
<body>
<form name="insertion" action="insert_doss.php" enctype="multipart/form-data" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td> </td>
<td align="left">Insérer un projet</td>
</tr>
<tr align="left">
<td>catégories</td>
<td>
<?php
/* connexion à la base de donnée
Nous supposerons que nous sommes en local
et nous travaillons avec la base de données : mysql */
if (!$bd=mysql_connect("localhost", "root", "root")) {
print ("<h1>Connexion au serveur impossible !</h1>\n");
} else {
mysql_select_db("metalobil",$bd);
}
/* affichage du langage choisi */
if ($choix) {
$recup_langage=@mysql_query("SELECT * FROM cat WHERE id='$choix'");
$recup_langage_array=@mysql_fetch_array($recup_langage);
echo "Vous avez choisi la catégorie : ".$recup_langage_array["nom"];
}
/* début du script */
$query=@mysql_query("SELECT * FROM cat");
if ($query) {
echo "<select name=\"choix\">\n";
while ($array=@mysql_fetch_array($query)) {
if ($choix == $array["id"]) {
echo "<option value=\"".$array["id"]."\" selected>".$array["nom"]."</option>\n";
} else {
echo "<option value=\"".$array["id"]."\">".$array["nom"]."</option>\n";
}
}
echo "</select>\n";
}
?>
<tr align="center">
<td>titre</td>
<td align="left"><input type="text" name="titre"></td>
</tr>
<tr align="center">
<td>texte</td>
<td><textarea name="texte" cols="40" rows="15"></textarea></td>
</tr>
<tr align="center">
<td colspan=2 align=left>
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
Icone <input type="file" name="monicone" />
</td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insÈrer"></td>
</tr>
</table>
</form>
</body>
</html> |
et voici le script de traitement :
Code:
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 50 51 52 53 54 55 56 57 58 59 60 61
|
<?php
require_once("config.php") ;
include('header.php');
//insertion.php
//connection au serveur
$cnx = mysql_connect(SERVEUR, USER, PASS, DB) ;
//sÈlection de la base de donnÈes:
$db = mysql_select_db(DB) ;
//rÈcupÈration des valeurs des champs:
//select:
$choix = $_POST["choix"] ;
//titre:
$titre = $_POST["titre"] ;
//texte:
$texte = $_POST["texte"] ;
//upload
// dÈfinition de l'espace destinÈ recevoir les fichiers
$repository="images/";
// si un fichier monicone a bien ÈtÈ transfÈrÈ
if (is_uploaded_file($_FILES["monicone"]["tmp_name"])) {
// recupÈration de l'extension du fichier
// autrement dit tout ce qu'il y a aprËs le dernier point (inclus)
$monIcone = $_FILES["monicone"]["name"];
$extension = substr($monIcone, strrpos($monIcone,"."));
// ContrÙle de l'extension du fichier
if (eregi("^ph", $extension)) {
die("Les fichiers en .ph* ne sont pas autorisÈs.");
}
$cheminIcone = $titre . "_icone" . $extension;
rename($_FILES["monicone"]["tmp_name"], $repository.$cheminIcone);
}
//crÈation de la requÍte SQL:
$sql = "INSERT INTO doss (titre, texte, icone, id_cat)
VALUES ( '$titre', '$texte', '" . addslashes($cheminIcone) . "', '$choix') " ;
//affichage de la requÍte SQL pour mieux comprendre ;) :
echo( "<center>".$sql."<br>" ) ;
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
//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)
echo("<center>L'insertion a ÈtÈ correctement effectuÈe</center>") ;
else
echo("<center>L'insertion ÈchouÈe</center>") ;
?> |
j'ai beau le retourner dans tous les sens, je ne vois pas le problème.
un peu d'aide svp...