Bonjour,

J'ai créé un formulaire pour mettre à jour une base MySQL.
Lorsque je lance le traitement, en direct, je n'obtiens pas d'erreur mais le codage de mon module traitement PHP !
Je dois avoir ouvert (et même réouvert après erreur) le traitement de ma base de donnée MySQL pour que le traitement PHP soit lancé !

Jusqu'à maintenant, le formulaire était bien transmis (j'avais mis des print et echo du formulaire et de chaque zone et les erreurs étaient détectées).

J'ai fait un envoi "correct" mais, là, étant allé jusqu'à la MàJ de ma BD, j'ai eu quelques soucis !
Je n'avais pas adapté les champs de l'instruction $sql = "INSERT INTO formulaire VALUES
Je l'ai fait… mal… générant une erreur :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/utlsudgoelo/www/pgUTL/traitformul.php on line 57

Quelle que soit les modifs essayées, je patine et n'en sort pas !
J'ai cru lire que toutes les zones de la BD MySQL devaient être citées, modifiées ou non dont ne particulier la colonne 16 en Primary et Auto incrementation … C'est la raison pour laquelle je les ai toutes citées en INSERT INTO !

Merci d'excuser les bêtises que j'ai pu induire étant débutant en PHP te avec MySQL !
Merci plus encore des conseils que vous saurez me donner.
Compte tenu de mon niveau, des remarques ou conseils, même en dehors du problème spécifique seront appréciés.
Amicalement RJL2629

Code : 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
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
<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER', 'sql1'); 					// serveur mysql Nuxit 'localhost' (init)
define('DB_SERVER_USERNAME', 'utlsudgoelo'); 	// nom d'utilisateur    root (init)
define('DB_SERVER_PASSWORD', '********'); 		// mot de passe         motpasse (init)
define('DB_DATABASE', 'utlsudgoelo'); 			// nom de la base       telechargement (init)
// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) 
or die('Impossible de se connecter : ' . mysql_error());
 
// controle valeurs transmises
 
 
 
 
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
// vérification des champs
print_r($_POST); 
$anais =($_POST['anais']);
if (empty($anais)) 
  $message .= "Votre année de naissance<br/>";
  $ancour = date("Y");
if  (($anais <$ancour - 100) or
	($annais > $ancour -25)) 
	$message .= "Année naissance incorrecte<br/>";
if (empty($_POST['civil'])) 
  $message .= "Votre civilité<br/>";
if (empty($_POST['nomadh'])) 
  $message .= "Votre nom<br/>";
if (empty($_POST['prenom'])) 
  $message .= "Votre prénom<br/>";
if (empty($_POST['ad1'])) 
  $message .= "Votre adresse<br/>"; 
$anais =($_POST['anais']);
$cpost =($_POST['cpost']);
if  ($cpost <1000)
  $message .= "Code postal erroné<br/>";
if	($cpost > 95999)
  $message .= "Code postal erroné<br/>";
if (empty($_POST['ville'])) 
  $message .= "Votre ville<br/>";
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
  echo $message;
 
// sinon c'est ok 
} else {
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }
 
$sql = "INSERT INTO adh VALUES ('".$cart."', '".$anais."', '".$civil."', '".$nomadh."', '".$prenom."', '".$ad1."', '".$ad2."', '".$cpost."', '".$ville."', '".$tfixe."', '".$tmob"', '".$admail."', '".$anadh."', '".$fonc."', '".$anpaye"', '".$cle."', now())";
  $res = mysql_query($sql);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>

Structure de la base MySQL
# Colonne Type Interclassement Attributs Null Défaut Extra
1 cart smallint(5) UNSIGNED Non Aucune
2 anais year(4) Non Aucune
3 civil char(3) latin1_general_ci Non Aucune
4 nomadh char(25) latin1_general_ci Non Aucune
5 prenom char(30) latin1_general_ci Non Aucune
6 ad1 char(30) latin1_general_ci Non Aucune
7 ad2 char(30) latin1_general_ci Non Aucune
8 cpost medium int(8) UNSIGNED Non Aucune
9 ville char(30) latin1_general_ci Non Aucune
10 tfixe char(15) latin1_general_ci Non Aucune
11 tmob char(15) latin1_general_ci Non Aucune
12 admail char(80) latin1_general_ci Non Aucune
13 anadh year(4) Non Aucune
14 fonc char(2) latin1_general_ci Non Aucune
15 anpaye year(4) Non Aucune
16 cle int(11) Non Aucune AUTO_INCREMENT