Insérer élément d'une liste dans BD avec PHP
Résolu
birdsfly
Messages postés
240
Date d'inscription
Statut
Membre
Dernière intervention
-
birdsfly Messages postés 240 Date d'inscription Statut Membre Dernière intervention -
birdsfly Messages postés 240 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
en utilisant php, je transmet des données d'une page (un formulaire) vers une autre qui va se charger d'inserer ces données transmises dans la BD.
avec les zones de texte ça marche bien, mais ce n'est pas le cas pour les "select" par exemple:
page 1 dans le formulaire:
page d'insertion:
lorsque je vérifie la table, je trouve que le "titre" est bien inséré, mais le champ "categorie" est toujours vide
Comment faire pour l'inserer?
Merci
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
en utilisant php, je transmet des données d'une page (un formulaire) vers une autre qui va se charger d'inserer ces données transmises dans la BD.
avec les zones de texte ça marche bien, mais ce n'est pas le cas pour les "select" par exemple:
page 1 dans le formulaire:
<input type=text name="titre"> <select name="cat"> <option value="" selected> net <option value=""> virus
page d'insertion:
<?php $var1=addslashes($_POST['titre']); $var2=$_POST['cat']; $req=$bdd->query("INSERT INTO table (titre, categorie) VALUES ('$var1','$var2')") or die(print_r($bdd->errorInfo()));
lorsque je vérifie la table, je trouve que le "titre" est bien inséré, mais le champ "categorie" est toujours vide
Comment faire pour l'inserer?
Merci
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
A voir également:
- Insérer élément d'une liste dans BD avec PHP
- Liste déroulante excel - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Insérer sommaire word - Guide
- Insérer une légende word - Guide
4 réponses
perso je me suis fais ca pour base ...
// fichier de conection a la BDD
<?php require_once('config.php'); ?>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
$message = htmlentities ($_POST['message'], ENT_QUOTES);
$pseudo = htmlentities ($_POST['pseudo'], ENT_QUOTES);
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
// On se déconnecte de MySQL
mysql_close();
}
}
?>
ps: ca te va ?
__
_/ \_____________________
\__/ -
// fichier de conection a la BDD
<?php require_once('config.php'); ?>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
$message = htmlentities ($_POST['message'], ENT_QUOTES);
$pseudo = htmlentities ($_POST['pseudo'], ENT_QUOTES);
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
// On se déconnecte de MySQL
mysql_close();
}
}
?>
ps: ca te va ?
__
_/ \_____________________
\__/ -
Merci DiabloBros, mais mon problème est seulement avec les variables postées venant d'une liste(menu).
Car dans le formulaire j'ai une liste où l'utilisateur doit sélectionner un élément (à coté d'autres zones de texte qu'il doit remplir), et lorsqu'il clique le bouton "valider", cela doit mener vers une autre page contenant du code php pour faire l'insertion des données postées par l'utilisateur dans la table, pour les données venant des zones de texte, aucun problème, elles s'insèrent dans la table, mais le champ réservé à la variable venant de la "liste" reste vide. Alors je pense que la manière de poster un élément sélectionné dans une liste est peut être différente de celle que je connais pour les zones de texte?!. Pour être plus claire voici mon code:
page "ajout.php":
page "ajout_post.php":
Je pense que le problème est dans $var2 :(
Car dans le formulaire j'ai une liste où l'utilisateur doit sélectionner un élément (à coté d'autres zones de texte qu'il doit remplir), et lorsqu'il clique le bouton "valider", cela doit mener vers une autre page contenant du code php pour faire l'insertion des données postées par l'utilisateur dans la table, pour les données venant des zones de texte, aucun problème, elles s'insèrent dans la table, mais le champ réservé à la variable venant de la "liste" reste vide. Alors je pense que la manière de poster un élément sélectionné dans une liste est peut être différente de celle que je connais pour les zones de texte?!. Pour être plus claire voici mon code:
page "ajout.php":
<form action="ajout_post.php" method=POST> <table> <tr><td align=right>Nom ou e-mail :</td> <td><input type=text name="email"></td></tr> <tr><td>Rubrique :</td> <td><select name="rub"> <option value="" selected> Internet <option value=""> Free software <option value=""> Multimédia <option value=""> Communication <option value=""> Commerce <option value=""> Technologie <option value=""> Loisirs <option value=""> Manifestations </select></td></tr> <tr><td align=right>Titre de la nouvelle :</td> <td><input type=text name="titre"></td></tr> <tr><td align=right>Texte :</td> <td><textarea name="texte" rows="12" cols="70"></textarea></td></tr> <tr><td colspan=2 align=center><input type=submit value="Envoyer"></td></tr> </table> </form>
page "ajout_post.php":
<?php try { $bdd=new PDO('mysql:host=localhost;dbname=nouvelles', 'root', ''); } catch(Exception $e) { die('Erreur : ' . $e->getMessage()); } $var1=addslashes($_POST['email']); $var2=$_POST['rub']; $var3=addslashes($_POST['titre']); $var4=addslashes($_POST['texte']); $req=$bdd->query("INSERT INTO nouvelle (email, rubrique, titre, texte, date, statut) VALUES ('$var1','$var2','$var3','$var4',NOW(),'attente')") or die(print_r($bdd->errorInfo())); echo "Merci pour votre contribution...Dans quelques instants, vous serez automatiquement reconduit sur la page d'acceuil"; ?>
Je pense que le problème est dans $var2 :(
ton code a l'air bon , donc je dirais, as tu assayé en GET plutot quand POST
c'est a dire pare une page intermediaire , dans la quel tu reafiche les données
et tu marque est ce sure c'est bien ca que vous voulez Up , un valider
et ca devrai etre bon...
(aprés re et re lecture, lol)
Haaaa sinon j'ai vu , il faut que $_POST['rub']; le rub soit rubrique
là tu post une variable appellé "rub" et tu lui dit mets rub dans "rubrique"
et du coup il comprend pas...
essai sinon avec $_POST['rubrique'];
ou alors appelé ca ligne de la BDD " rub " et pas rubtique
__
_/ \_____________________
\__/ -
c'est a dire pare une page intermediaire , dans la quel tu reafiche les données
et tu marque est ce sure c'est bien ca que vous voulez Up , un valider
et ca devrai etre bon...
(aprés re et re lecture, lol)
Haaaa sinon j'ai vu , il faut que $_POST['rub']; le rub soit rubrique
là tu post une variable appellé "rub" et tu lui dit mets rub dans "rubrique"
et du coup il comprend pas...
essai sinon avec $_POST['rubrique'];
ou alors appelé ca ligne de la BDD " rub " et pas rubtique
__
_/ \_____________________
\__/ -
Problème résolu, il me fallait juste remplir les "value" des balises <option> du menu. par l'option que je veux.
Exemple:
<select name="rubrique"><option value="Internet">Internet</option>
<option value="Commerce ">Commerce</option></select>
Et merci beaucoup DiabloBros ^^
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
Exemple:
<select name="rubrique"><option value="Internet">Internet</option>
<option value="Commerce ">Commerce</option></select>
Et merci beaucoup DiabloBros ^^
"La haine est la voix de celui qui a laissé la souffrance planter son drapeau aisément sur son encéphale"
<?php
// Parametres mysql
define('DB_SERVER', 'localhost'); // serveur mysql
define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', ''); // mot de passe
define('DB_DATABASE', 'votre_base'); // nom de la base
define('DB_TABLE_CHAT', 'minichat');
// Connexion au serveur mysql
$connect = mysql_pconnect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
?>