Lier un formulaire à la basse de données

AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis en terminale et je ne me connaît vraiment pas très bien en programmation.
Je voudrais créer un formulaire qui soit lié à la basse de données.
ça fait un moment que j'essaie et il me semble que je fais n'importe quoi - pourriez vous m'aider s'il vous plaît?????

Ce que j'ai fais pour l'instant:
- un formulaire basique (type html)
- son fichier css -> pour le rendre plus agréable à regarder
-des scripts: accesBDD.php & medicamentAjout.php (normalement récupère les données transmises par le formulaire)

j'en ai AUCUNE IDEE COMMENT LIER TOUT CA!!!
A voir également:

14 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Je t'invite à lire ces tutos :
https://www.commentcamarche.net/contents/493-formulaires-html-cours-et-exemples

puis : https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees


Pour ce qui est de la connexion à la BDD (et à sa manipulation via des requêtes par la suite) je t'invite, si ne c'est pas déjà fait, à passer par la PDO...

Dans l'ordre :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913655-quest-ce-quune-base-de-donnees

Puis :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees

et en complément : https://fmaz.developpez.com/tutoriels/php/comprendre-pdo/
.


1
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Merci beaucoup pour votre aide!
Mais mon formulaire ne marche toujours pas: c'est à dire qu'il existe sous forme html (et il marche), mais par-contre dès que je rentre les données et je les envoie ça ne marche plus.
Voilà mon travail:
[LE FORMULAIRE EN HTML]
<!DOCTYPE html>
<html>
 <head>
  <title> le physique du formulaire </title>
  <link  rel="stylesheet" media="screen" type="text/css" title ="style" href="style.css" /> 
  <meta charset= "utf-8"/> 
 </head>
 <div class="tbody">
 <body>
  <form id="medicamentAjout" method="POST" action="medicamentAjout.php"> 
   <p class="titre">Informations générales </p>
    <fieldset> 
     <label>Libelle : </label>
      <input type="text" name="libelle" size="30" /><br />
     <label>Numéro : 
      <input type="text" name="num" size="8" /><br/>
     
      <label>Forme Pharmaceutique  : </label>
      <select name="formeph">
        <option value="Paracetamol">Paracetamol</option>
        <option value="Daphalgan">Dafalgan</option>
        <option value="Magnesium">Magnésium</option><br />
      </select>
   </p>
    </fieldset>
   <p class="titre">Préscription</p>'
    <fieldset>
    <textarea name="prescription" rows="5" cols="40"></textarea>
    </fieldset>
    <p>
  <input type="submit" value="Retirer" />
   <input type="submit" value="Modifier" />
    </p
  </form>

 </body>
 </div>
</html>: 

....................................................................[le script ]................................
<?php
  include("includes/accesBDD.php");
  extract($_POST);
   $requete="insert into médicaments
   values(0,'$Libelle','$Numéro','$Préscriptio','FormePharmaceutique')";
    if(mysqli_query($db,$requete)==true)
    echo("Votre demande d'information a été enregistrée");
   else
    echo("Un problème est survenu lors de l'enregistrement de votre demande d'information:".mysqli_error($db));
 mysqli_close($db);

?>



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
0
letrancheur Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   7
 
je ne vois pas ou tu te co j'image que c'est dans accesBDD.php mais pourrais tu nous montrer le code que tu y a mis
merci
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bien sur, voilà le code d'"accesBDD.php
<?php 
$serveurBDD="localhost";
$user="root";
$passwd="";
$nombdd="médicaments";

$db=mysqli_connect($serveurBDD,$user,$passwd,$nombdd);
if($db==null)echo("problème d'accès à la base de données".mysqli_error($db));
?>
0
letrancheur Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   7
 
évite déjà les accents pour le nom de tes bases...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu dis que ça ne marche pas... c'est à dire ? pourrais tu être un peu plus précis ?

Par contre.. je pense qu'il y a un souci au niveau de ta requête
Je pense que ta table dispose d'un champ ID auto-incrémenté .. il ne faut alors pas le renseigner (ou alors par défaut le mettre à NULL)
$requete="insert into médicaments
   values(NULL,'$Libelle','$Numéro','$Préscriptio','FormePharmaceutique')";



Par contre .. il est quand même vivement conseillé de préciser les champs que tu insères dans ta requête
par exemple :
INSERT INTO matable 
           (nom
          , prenom)
 VALUES(
         'exemple'
        , 'jordane'
        )



PS: **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.

0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, merci de m'avoir répondu!

Lorsque je lance mon formulaire, et que je rentre des données dans les cases correspondantes (libelle, numéro ect) et que je clique sur mon bouton "valider", je suis envoyée sur une page qui contient le script qui connecte mon formulaire à ma BD, je pense qu'il y a un problème, car je devrais recevoir un message d'erreur de connexion normalement,
Est-ce qu'il faut que j'insert mes deux scripts (accesBDD + medicamentAjout.php) directement dans mon formulaire ?


Merci d'avance :)
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Autre problème avec le nom de tes variables php.

Les variables php extrait de ton formulaire (via la méthode export()) possède le nom défini dans l'attribut name des input/select/textarea/...
Par exemple, pour le champ
<input type="text" name="libelle" size="30" />
, la variable php qui sera définie sera $libelle et non $Libelle (attention à la casse).
Idem pour tous tes champs :
- $num au lieu $Numéro
- $prescription au lieur $Préscriptio
- $formeph au lieu FormePharmaceutique

Bonne journée
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, merci votre réponse!

J'ai modifié ce aue vous m'avez dit, mais ça ne marche toujours pas.
Quand je rempli mon formulaire et que je clique sur mon bouton "valider", je me retrouve sur une page qui contient le script qui connecte mon formulaire à ma BD.
Est-ce qu'il faut que j'insert mes deux scripts (accesBDD + medicamentAjout.php) directement dans mon formulaire ?


Merci d'avance :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Quand tu dis <<je me retrouve sur une page qui contient le scrip>> ... tu veux dire quoi.. que tu lis à l'écran ton script et qu'il ne s'exécute pas ?
Dis voir ... je suppose que tu travaille en local sur ton PC ...
Tu as installé un serveur apache Mysql ? ( un WAMP ou XAMPP ou un truc du genre ) ?
Tu passes bien également par le localhost pour aller chercher ta page web ... (tu as quoi dans la barre d'adresse bien un truc du genre : localhost/ton_site ) ?
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
oui!! tout à fait!
j'ai WAMPserver
dans la barre d'adresse j'ai le nom de dossier dans lequel j'ai enregistré ma page/medicamentAjout.php
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Sans le mot localhost devant ??
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
oui,
juste :
file:///F:/Le%20projet/o.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
letrancheur Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   7
 
Donc alors

1
rassemble tout tes fichiers(pages web) dans un seul dossier que tu appellera projet_site_1.local et tu va le mettre ans C:\wamp\www

2
tu va créer un fichier 1_vhots.conf
et tu va mettre dans ce fichier ceci:

#localhost
<VirtualHost *:80>
DocumentRoot C:/wamp/www/
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot C:/wamp/www/projet_site_1.local
ServerName www.projet_site_1.local
ServerAlias projet_site_1.local
</VirtualHost>

Et tu va le glisser dans C:\wamp\alias
je te met juste les config de bases pour tes vhost mais normalement il faut les séparer et mettre bien plus pour être propre mais bon voila ;-)

3
tu va te rendre dans
C:\Windows\System32\drivers\etc et ouvrir avec un éditeur de text hosts
normalement par défaut tu as déja le localhost qui est mis apres 127.0.0.1 met derrière localhost projet_site_1.local
idem pour
::1 localhost projet_site_1.local


puis redémarre ton serveur
apres normalement si je n'ai rien oublié quand tu tappera dans ta barre de recherche http://projet_site_1.local tu devrais déja avoir qqchose
0
letrancheur Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   7
 
bon il est tard donc je vais y aller mais j'ai aussi remarqué qu tu avais fait une faut je pense au niveau de tes input et n'oublie pas qu'en html il es conseillé de fermer les premières balises que l'on a ouvertes après celles se situe dans celles-la. Essaye également de relire la doc pour la balise <p> car tu en fermes alors qu'elles n'existent pas ( ce n'est bien sure pas pour ça que cela ne fonctionne pas :)
relie également la partie procédural de mysqli_query et j'essayerai de repasser demain pour t'aider bn
PS: si quelqu'un remarque des erreur dans ce que je lui ai fait configurer sur wamp n'hésitez pas à me le faire signaler :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pas besoin de faire tout ça .....
(les alias, vhosts et compagnie....)

Tu as juste à placer tes fichiers dans le répertoire :
c:\wamp\www\TonDossier\

Ensuite... assures-toi que ton WAMP est bien lancé ( l'icone du logiciel devrait apparaitre à côté de l'heure et doit être de couleur verte.)

Puis vas dans ton navigateur internet .. et tapes dans la barre d'adresse : http://localhost/TonDossier/
et là .. hop .. tu te retrouves sur ton site.
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   > letrancheur Messages postés 210 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour votre aide!!! c'est méga gentil!!

j'ai fais tout ce que vous m'avez conseillés, mais là encore un soucis:
? le fichier hosts ne veut pas se modifier.
[ j'ai vérifiée qu'il ne soit pas en lecture seule, j'ai changée les paramètres de sécurité du coup en l'ouvrant en tant qu'administrateur il me semble que c'est passée;
MAIS du coup maintenant Wamp (php My Admin) n'est plus accessible, la connexion est refusée!! ]
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Maintenant, j'ai refais la même chose pour voir si ça allait marcher avec les paramètres "originaux" de hosts - non toujours rien quand je tape: http://localhost/projet_site_1.local/
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
(comme j'ai déjà rassemblée mon projet dans le dossier en faisant les manipulations d'avant je l'ai gardée, mais ça change pas)

Je pense que oui, j'ai vraiment fait une erreur de codage et que mon formulaire est certainement faux.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

quand j'ai ouvert le fichier il était déjà comme ça

Tu peux laisser comme c'est .... ou en supprimer 3 ....


Quoi qu'il en soit, le souci n'est pas là.

Peux tu nous dire ce qu'il en est de :
- Ton wamp est il lancé ?
- De quelle couleur est l'icone ? ( verte ? )


=> Si l'icône n'est pas verte, c'est que tu as surement le port 80 qui est occupé...(par un programme comme Skype par exemple)
Pour le savoir, fais ceci :

Clique avec le bouton gauche sur l'icone wampserver.
Sélectionne "apache -> service -> tester le port 80"
Ce te donnera l'identifiant du programme qui pose problème et qui tourne sur le port 80


0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Le Wamps s'affiche orange,
après l'avoir téléchargé j'avait changé le port (80->8070)
Maintenant je n'accède même plus à le configuration:
quand j'appuie sur httpd.conf ça me donne :
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that ........
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
En fait c'est bon il suffisait d'effacer le fichier vhost!!
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Le Wamp est de nouveau vert!!!!!! :D
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
donc .; que donnes désormais : http://localhost/ dans ton navigateur ?
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Maintenant, le lien marche, mais par-contre ça me donne quelque chose de bizarre - c'est en cause du formulaire?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

par-contre ça me donne quelque chose de bizarre - c'est en cause du formulaire?

Ben... comment dire .... " quelque chose de bizarre .. " .... ça ne me parle pas
Pourrais tu être un poil plus précis ?
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé, je ne pouvais pas répondre avant.
Et bien maintenant ça me renvoie à la configuration de WampServeur (sur http://localhost )
quand je vais sue :http://localhost/projet_site_1.local/
c'est écrit : Index of /projet_site_1.local

Puis :
[ICO] Name Last modified Size Description
[PARENTDIR] Parent Directory -
[ ] accesBDD.php 2015-05-09 13:03 237
[ ] medicamentAjout.php 2015-05-07 16:02 438
[ ] nulll.php 2015-05-08 12:04 1.3K
[TXT] nulll.txt 2015-05-08 12:04 1.3K
[ ] o.php 2015-05-07 16:24 1.3K
[TXT] style.css 2015-05-04 23:55 772

Tout en bas :Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80
Pourquoi c'estle port 80?
Alors que je l'ai changé depuis longtemps
Et pourquoi quand maintenant je vais sur Wamp(vert) -> Apache-> httpd.conf
je ne peux plus rien modifier : il est écrit: "#
# This is the main Apache HTTP server configuration file. It contains the
# configuration dir......."
?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

quand je vais sue :http://localhost/projet_site_1.local/
c'est écrit : Index of /projet_site_1.local

... Normal .. car sans fichier index.html ou index.php ( ou home.html....) .. le serveur ne sait pas quel est le point d'entrée....
A toi de préciser dans l'url en mettant le nom de ton fichier .php .... ou alors de faire une redirection à base de htaccess par exempe ( ou encore plus simple.. de mettre un fichier index.php .... )
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
et bien quand je fais ça, mon formulaire s'affiche, mais en dessous, je retrouve un tableau (de couleur jaune) de type:
Warning: include(includes/accesBDD.php): failed to open stream: No such file or directory in C:\wamp\www\projet_site_1.local\medicamentAjout.php on line 2

 Warning: include(): Failed opening 'includes/accesBDD.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\projet_site_1.local\medicamentAjout.php on line 2

Notice: Undefined variable: libelle in C:\wamp\www\projet_site_1.local\medicamentAjout.php on line 5

etc...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Tu as un répertoire includes ?
Je ne le vois pas
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
non, je n'ai pas crée de répertoire includes
[et bien que ça a l'air vraiment pathétique, je ne vois pas comment on fait..]
je suis vraiment désolé d'être aussi lourde...
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Ce que j'ai crée, c'est ce qu'il y a plus haut dans les commentaire:
- le formulaire type html
avec " un renvoi" (en php) vers:
- un script en php (medicamentsAjout.php)
qui renvoi vers:
-un autre script en php (accesBDD.php)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

non, je n'ai pas crée de répertoire includes

Pourtant ... tu as mis la ligne de code suivante :
include("includes/accesBDD.php");


Ligne de code qui essaye d'inclure dans ton script ... le fichier accesBDD.php ... qui se trouverais visiblement dans un répertoire : "includes"

D'où ton message d'erreur....


.... c'est le problème quand on copie bêtement un code sans en comprendre le fonctionnement......

Bref,
D'après l'arborescence de ton répertoire (que tu nous a posté précédement..)

[ICO] Name Last modified Size Description
[PARENTDIR] Parent Directory -
[ ] accesBDD.php 2015-05-09 13:03 237
[ ] medicamentAjout.php 2015-05-07 16:02 438
[ ] nulll.php 2015-05-08 12:04 1.3K
[TXT] nulll.txt 2015-05-08 12:04 1.3K
[ ] o.php 2015-05-07 16:24 1.3K
[TXT] style.css 2015-05-04 23:55 772

Ton fichier accesBDD.php ... se trouve à la racine ... donc... il faut modifier ton INCLUDE par :
include("accesBDD.php");




[et bien que ça a l'air vraiment pathétique, je ne vois pas comment on fait..]

Ben.. comme pour créer n'importe quel répertoire sur ton ordinateur....
Tu te places dans le dossier .. tu fais un clic-droit ... tu choisis :"nouveau" puis "Dossier" .... et tu le nommes comme tu le souhaites....




0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Ah..du coup c'était un problème de compréhension..
en fait ça ne marchait pas en cause des fautes vraiment trop bêtes de ma part(le nom que j'avais pas midifié)
Merci beaucoup à vous!
Ce que ne marche pas c'est la ligne 11 de "medicamentajout.php" :
et je ne comprends pas pourquoi:
$requete="insert into medicaments
    values(NULL,'$libelle','$numero', '$date','$prescription','$formepharmaceutique')";


EDIT : AJOUT DU LANGAGE dans les balises de code
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 

Ce que ne marche pas c'est la ligne 11 de "medicamentajout.php" :

Je ne pense pas que ça soit cette ligne qui pose problème....
pourrais tu nous mettre le message d'erreur EXACT s'il y en a un ou nous dire pourquoi selon toi ça ne fonctionne pas ??

NB : Pourrais-tu également nous donner la structure de ta table medicaments ?
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Biensur: - voilà le contenu de ma table medicaments:
Nom:                      Type:               Intercl :                Extra : 
Id int(11) AUTO_INCREMENT
libelle varchar(12) latin1_swedish_ci
numero int(11)
date date
formaph varchar (500) latin1_swedish_ci
prescription text utf8_general_ci


- ce que s'affiche à la suite de mon formulaire quand je vais sur http://localhost/projet_site_1.local/o.php
 Notice: Undefined variable: libelle in C:\wamp\www\projet_site_1.local\medicamentajout.php on line 11
Call Stack
# Time Memory Function Location
1 0.0049 132056 {main}( ) ..\o.php:0
2 0.0077 135704 include( 'C:\wamp\www\projet_site_1.local\medicamentajout.php' ) ..\o.php:38
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bête comme question,mais est ce que j'ai bien fait d'inclure :
<?php
include ("medicamentajout.php")
?>

après
</form>

juste avant
</body>

[je suis désolé c'est la première fois que je code un formulaire qui utilise la BDD..]
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
La place n'a pas vraiment d'importance ..
tout dépend ce que tu comptes faire du contenu du fichier ....
Dis toi qu'un include c'est comme coller un bout de texte à la suite d'un autre.... tu le colles là où tu en as besoin.

Pour ce qui est de ton PB de variable Undefined ... il faudrait que tu nous montres le code de tes pages.
medicamentajout.php .. mais aussi celle qui y fait appel.
0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
medicamentajout.php:

<html>
<head>
<title> le renvoie du formulaire </title>
<meta charset= "utf-8"/>
</head>
<body>
<?php
include("accesBDD.php");
extract($_POST);
$requete="insert into medicaments
values(NULL,'$libelle','$numero', '$date','$formaph', $prescription')";
if(mysqli_query($db,$requete)==true)
echo("Votre demande d'information a ete enregistree");
else
echo("Un probleme est survenu lors de l'enregistrement de votre demande d'information:".mysqli_error($db));
mysqli_close($db);
?>
</body>
</html>


accesBDD.php
<?php
 $serveurBDD="localhost";
 $user="root";
 $passwd="";
 $nombdd="medicament";
 
  $db=mysqli_connect($serveurBDD,$user,$passwd,$nombdd);
  if($db==null)echo("problème d'accès à la base de données".mysqli_error($db));
 ?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
ok...
Donc tu utilises la fonction EXTRACT.
Pratique .. mais perso je préfère récupérer les variables moi-même pour m'assurer de ce que je récupère ...

Et là ... visiblement... tu ne récupères pas la variable $libelle.


Pour le vérifier, fais un print_r de ta variable POST ....
<?php
  include("accesBDD.php");

//le temps des tests :
print_r($_POST);

  extract($_POST);
   $requete="insert into medicaments
    values(NULL,'$libelle','$numero', '$date','$prescription','$formepharmaceutique')";
    if(mysqli_query($db,$requete)==true)
    echo("Votre demande d'information a ete enregistree");
   else
    echo("Un probleme est survenu lors de l'enregistrement de votre demande d'information:".mysqli_error($db));
 mysqli_close($db);
?>




Par contre, il nous manque ton formulaire HTML (là d'où viennent tes données.....)
Je pense que tu n'as pas de champ "libelle" ou que tu l'as orthographié différemment...


0
AnnaGx Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Mon formulaire c'est le fichier o.php:
<!DOCTYPE html http://localhost/projet_site_1.local/ >
<html>
<head>
<title> le physique du formulaire </title>
<link rel="stylesheet" media="screen" type="text/css" title ="style" href="style.css" />
<meta charset= "utf-8"/>
</head>
<div class="tbody">
<body>
<form id="medicamentajout" method="POST" action="medicamentajout.php">
<p class="titre">Informations générales </p>
<fieldset>
<label>Libelle : </label>
<input type="text" name="libelle" size="30" /><br />
<label>Numéro :
<input type="text" name="numero" size="8" /><br/>
<label>Date :
<input type="text" name="date" size="8" /><br/>

<label>Forme Pharmaceutique : </label>
<select name="formaph">
<option value="Paracetamol">Paracetamol</option>
<option value="Daphalgan">Dafalgan</option>
<option value="Magnesium">Magnésium</option><br />
</select>
</fieldset>
<p class="titre">Préscription</p>
<fieldset>
<textarea name="prescription" rows="5" cols="40"></textarea>
</fieldset>
<p>
<input type="submit" value="Retirer" />
<input type="submit" value="Modifier" />
</p
</form>
<?php
include ("medicamentajout.php")
?>
</body>
</div>
</html>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Premier souci ...
Ton FORM fait déjà une redirection vers medicamentajout.php
<form id="medicamentajout" method="POST" action="medicamentajout.php"> 


... mais EN PLUS .. tu en fais un INCLUDE ?
include ("medicamentajout.php")



Donc, au choix, Tu laisse comme c'est dans ton form .. et tu retires l'include ...
ou .. tu laisses ton include .. et dans ta FORM .. tu mets l'action à vide
<form id="medicamentajout" method="POST" action=""> 


Ensuite...
Comme je te le disais... la fonction EXTRACT .. n'extrait que les données existantes...
Si tu laisses un des champs à VIDE .. il n'existe pas ... d'où ton message d'erreur....

Pour éviter cela, je t'invite à ne plus utiliser la fonction EXTRACT mais à récupérer manuellement ( ... mais correctement...) tes variables de la façon suivante :

//-------------------------------------------------------------------//
// Récupération des Variables
// En écriture TERNAIRE + Test de l'existence de la variable avec 
// la fonction isset
//-------------------------------------------------------------------//

$libelle             = isset($_POST['libelle'])?$_POST['libelle']:'';
$numero              = isset($_POST['numero']) ?$_POST['numero']:'';
$date                = isset($_POST['date']) ?$_POST['date']:'';
$prescription        = isset($_POST['prescription'])?$_POST['prescription']:'';
$formepharmaceutique = isset($_POST['numero']) ?$_POST['formepharmaceutique']:'';



PS: Merci d'indiquer le LANGAGE dans les balises de code.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.


Cordialement,
Jordane
0