Formulaire PHP

Fermé
salamzo_batuyo Messages postés 4 Date d'inscription jeudi 9 mai 2013 Statut Membre Dernière intervention 19 septembre 2013 - 17 sept. 2013 à 21:27
salamzo_batuyo Messages postés 4 Date d'inscription jeudi 9 mai 2013 Statut Membre Dernière intervention 19 septembre 2013 - 19 sept. 2013 à 11:23
bonjour a tous

SVP j'ai vraiment besoin d'aide. J'ai crée ma base de donné et jaimerais faire une interface graphique pour inserer les données directement dans ma base, alors j'ai concu un site web avec formulaire. le probleme est que mon code ne marche pas, je sais pas pour quel raison. le voici le farmeux code. pour l'insertion de donnée a l'aide d'1 formulaire concernant un fournisseur

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>AJOUTER FOURNISSEUR</title></head>
<body bgcolor="#fdff78" text="white">

<p align="center"><img src="file:///C|/w/les formulaires/logoo.png" height="136" width="974"></p>

<b><center>
<font color="black"> <h1>Renseigner ce formulaire pour ajouter un fournisseur.</h1></font>
</center></b>
<p> </p>
<p> </p>
<p> </p>



<form method="POST" action="ajout1_FOUR.php">
<p> <center><H2><font color="black" >FOURNISSEUR</font> </H2></center> </p>
<table border="2" width="350" align="center" bgcolor="black" cellspacing="2" cellpadding="2">

<tr>
<td width="150"><b><label for="IDfournisseur">IDfournisseur</label></b></td>
<td width="160"> <input type="text" name="IDfournisseur" id="IDfournisseur"> </td>
</tr>

<tr>
<td width="150"><b>Nom<b></td>
<td width="160"><input type="text" name="nomFOUR"/> </td>
</tr>

<tr>
<td width="150"> <b> Prenom<b></td>
<td width="160"> <input type="text" name="prenomFOUR"/> </td>
</tr>


<tr>
<td width="150"> <b>Commune </b> </td>
<td width="160"> <input type="text" name="communeFOUR"/> </td>
</tr>

<tr>
<td width="150"> <b> Mail <b> </td>
<td width="160"> <input type="text" name="mailFOUR"/> </td>
</tr>

<tr>
<td width="150"> <b> Telephone <b> </td>
<td width="160"> <input type="text" name="telephoneFOUR"/> </td>
</tr>

<tr>
<td colspan="2">
<center> <input name="ajouter" type="submit" value="Ajouter"/>

<input name="annuler" type="reset" value="Annuler"/>
</center> </td>
</tr>
</table>
</form>

</body>

<?php
//connection au serveur
$connexion = mysql_connect ('localhost', 'root', '');

//sélection de la base de données:
mysql_select_db ('gestion_stock', $connexion) ;

//récupération des valeurs des champs:

$IDfournisseur=$_POST['IDfournisseur'];
$nomFOUR=$_POST['nomFOUR'];
$prenomFOUR=$_POST['prenomFOUR'];
$communeFOUR=$_POST['communeFOUR'];
$mailFOUR=$_POST['mailFOUR'];
$telephoneFOUR=$_POST['telephoneFOUR'];

//création de la requête SQL:
$sql = 'INSERT INTO fournisseur VALUES ('$IDfournisseur', '$nomFOUR', '$prenomFOUR', '$communeFOUR', '$mailFOUR', '$telephoneFOUR')';

//exécution de la requête SQL:
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());


mysql_close();
?>



</html>

5 réponses

MichaelOfCourse Messages postés 87 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 2 septembre 2016 6
17 sept. 2013 à 22:08
Je crois que tu as oublié de donner les noms des colonnes dans lesquelles inserer les variables à ta requête, non ?
0
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
18 sept. 2013 à 08:55
Bonjour,

Affiche ta requête avant de l'executer pour voir ce que cela te donne. Puis essaye de la mettre directement dans mysql.


/création de la requête SQL:
$sql = 'INSERT INTO fournisseur VALUES ('$IDfournisseur', '$nomFOUR', '$prenomFOUR', '$communeFOUR', '$mailFOUR', '$telephoneFOUR')';
echo $sql;
//exécution de la requête SQL:
/*mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());*/

Attention, si ton IDfournisseur est en autoIncrément ou primaire, cela peut te provoquer une erreur si tu réutilise un ID déjà attribué à un autre fournisseur.

Cordialement
0
Utilisateur anonyme
18 sept. 2013 à 10:26
Bonjour

Tu dois avoir une erreur détectée par PHP à l'écriture de ta requête, car ta chaîne n'est pas correcte.
Si tu veux utiliser des apostrophes et des noms de variables dans ta requête, il faut l'entourer de double quotes :
$sql = "INSERT INTO fournisseur VALUES ('$IDfournisseur', '$nomFOUR', '$prenomFOUR', '$communeFOUR', '$mailFOUR', '$telephoneFOUR')";
De plus, tel qu'est écrit ton code, tu vas systématiquement insérer une ligne avec des variables vides car tu ne testes pas si le formulaire est rempli ou non. Or il ne l'est certainement pas la première fois que tu l'affiches.
0
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
18 sept. 2013 à 10:32
De plus, tel qu'est écrit ton code, tu vas systématiquement insérer une ligne avec des variables vides car tu ne testes pas si le formulaire est rempli ou non. Or il ne l'est certainement pas la première fois que tu l'affiches.

Le traitement est effectué sur un autre page donc ta dernière phrase ne tiens pas ;)
0
Utilisateur anonyme
18 sept. 2013 à 10:42
OK si c'est fait sur une autre page, mais moi je ne vois rien qui l'indique, bien au contraire.
Il n'y a de balise </html> qu'après le code PHP, pas immédiatement après le </body> : ça laisse bien penser que tout ça est un seul et même fichier. Et il faut espérer que c'est bien le fichier ajout1_FOUR.php
0
salamzo_batuyo Messages postés 4 Date d'inscription jeudi 9 mai 2013 Statut Membre Dernière intervention 19 septembre 2013
18 sept. 2013 à 20:28
wi tout est sur un seul et meme fichier, le traitement se fait sur la meme page ajout1_FOUR.php,
0
salamzo_batuyo Messages postés 4 Date d'inscription jeudi 9 mai 2013 Statut Membre Dernière intervention 19 septembre 2013
18 sept. 2013 à 20:29
le père je ne comprend pas ton message "De plus, tel qu'est écrit ton code, tu vas systématiquement insérer une ligne avec des variables vides car tu ne testes pas si le formulaire est rempli ou non. Or il ne l'est certainement pas la première fois que tu l'affiches."
0
Utilisateur anonyme
18 sept. 2013 à 21:56
Tu as mis le code PHP après le formulaire, mais il ne faut surtout pas croire que PHP va sagement attendre que le formulaire soit rempli pour traiter la suite. Non, dès que le formulaire a été envoyé au client, c'est à dire affiché (et non pas rempli) le script continue et tente d'analyser des variables $_POST['xx'] qui n'existent pas!
Ces variables n'existeront que quand on cliquera sur le bouton 'submit' et que le script sera appelé à nouveau.
Il FAUT tester si le formulaire a bien été rempli avant d'essayer d'insérer les données dans la base. Par exemple :
if (isset($_POST['ajouter])) { // on a cliqué sur le bouton "Ajouter" ?
... code pour insérer dans la base...
}
Généralement, on fait ce test AVANT l'affichage du formulaire, car si les données sont correctes, on ne réaffiche pas le formulaire, on passe à autre chose.
Il serait bien aussi de tester que les données sont valables (pas vides par exemple) mais c'est une autre histoire.

Remarque sur ton image <img src="file:///C|/w/les formulaires/logoo.png" height="136" width="974">
Tu utilises file:///, ce qui signifie que chaque visiteur de ton site va aller chercher l'image dans son propre disque dur : tu peux être sûr que ça ne marchera jamais, personne d'autre que toi n'a cette image dans ce même dossier. Ton image doit être dans ton espace web, par exemple dans un sous-dossier "images" du dossier qui contient ton script, et tu mets une url relative :
<img src="./images/logoo.png" height="136" width="974">
0

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

Posez votre question
salamzo_batuyo Messages postés 4 Date d'inscription jeudi 9 mai 2013 Statut Membre Dernière intervention 19 septembre 2013
19 sept. 2013 à 11:23
dak je vais esseyé toute vos solutions et vois ce que sa vas donné. merci beaucoup particulièrement a toi le père.
0