Bonjour,
Novice en php, je tente de créer un formulaire pour saisir des données envoyées par la suite dans une table d'une base postgres.
Lors de l'ouverture initiale du formulaire de saisie, j'ai systématiquement un message d'erreur relatif à l’exécution d'une requête :
Pourquoi la requête s'execute-t-elle à l'ouverture du formulaire ? Comment "empêcher" cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Warning: pg_query(): Query failed: ERREUR: syntaxe en entrée invalide pour l''entier : « » LINE 2: VALUES ('','', '', '', ^ in C:\ms4w\Apache\form_php\insert_inv_faits.php on line 103
Je comprends le message d'erreur car en executant la requête, le navigateur envoie une valeur null dans un champ d'une table qui doit être rempli (numpoly).
le bout de html :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <ul> <form name="insert" action="insert_inv_faits.php" method="POST" > <li>numéro de vestige :</li> <input type="integer" name="numpoly" /> <span class="error">* <?php echo $numpolyErr;?></span> <li>interprétation :</li> <input type="text" name="interpretation" /> <li>ensemble technique :</li> <input type="integer" name="ensTechn" /> <li><input type="submit" /></li> </form> </ul>
le php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $db = pg_connect("host=localhost port=5432 dbname=php user=xxxx password=xxxx"); $numpolyErr = "" ; $numpoly = $interpretation = $ensTechn ; //variable qui stocke la requête qui inserera les valeurs saisies, dans la bdd. if (empty($_POST[numpoly])) {$numpolyErr = "numéro de vestige requis" ; } else { $numpoly = $_POST[numpoly] ; } if (empty($_POST[interpretation])) {$interpretation = "" ; } if (empty($_POST[ensTechn])) {$ensTechn = "" ; } ... { $query = "INSERT INTO public.unobs(numpoly, interpretation, ensemble_technique) VALUES ('$_POST[numpoly]','$_POST[interpretation]', '$_POST[ensTechn]')" ; } //variable qui execute la requete $query si non null if (isset($query)) { $result = pg_query($query); } ?>
Comment solutionner ce problème ?
Merci
Partager