Bonjour,

J'ai un soucis avec mon formulaire PHP. Lorsque je ne remplis pas tous les champs dates le message suivant apparait :

Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access]Utilisation non valide de pointeur null , SQL state S1009 in SQLExecDirect in c:\program files\easyphp1-8\www\formulaire transmission\transmission2.php on line 136
Erreur dans la requête : Erreur : S1009
Le problème c'est que la saisie de ces champs n'est pas obligatoire, ils peuvent être vides.

Quelqu'un a déjà rencontré ce problème ?

Voici mon script :
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
 
<!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>Transmission</title>
<link href="style_transmission.css" rel="stylesheet" type="text/css" />
</head>
 
<body bgcolor="#CC99CC">
 
 
<p class="classe1">Formulaire de transmission d'un dossier</p>
<form id="form1" name="form1" method="post" action="">
 
<div class="page">
    <div class="ligne">
        <div class="col"> Nom :
        <input name="nom" type="text" class="classe3" size="31" maxlength="30"/>
        </div>
        <div class="col">Prénom :
        <input name="prenom" type="text" class="classe3" maxlength="30" size="31" />
        </div>
        <div class="col">Nom de jeune fille :
        <input name="nom_jf" type="text" class="classe3" maxlength="30" size="31" />
        </div>
        <div class="col">Date de naissance :
        <input name="ddn" type="text" class="classe3" />
        </div>
    </div>
    <div class="ligne">
        <div class="col">Date de demande :
        <input name="date_demande" type="text" class="classe3" />
        </div>
        <div class="col">Demandeur :
        <input name="demandeur" type="text" class="classe3" maxlength="30" size="31" />
        </div>
        <div class="col">Service :
        <input name="service" type="text" class="classe3" maxlength="30" size="31" />
        </div>
        <div class="col">Parenté :
        <input name="parente" type="text" class="classe3" maxlength="20" size="21" />
        </div>
    </div>
    <div class="ligne">
        <div class="colpetite">Date réponse SIM :
        <input name="date_reponse_sim" type="text" class="classe3" size="20" />
        </div>
        <div class="colmed">  Médecin 1 :
        <input name="medecin1" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Médecin 2 :
        <input name="medecin2" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Médecin 3 :
        <input name="medecin3" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Médecin 4 :
        <input name="medecin4" type="text" class="classe3" size="28" />
        </div>
    </div>
    <div class="ligne">
        <div class="colpetite">Réponse CHD : &nbsp;&nbsp;&nbsp;&nbsp;
        <input type="radio" name="reponse" value="-1" />oui
        &nbsp;&nbsp;&nbsp;&nbsp;
        <input type="radio" name="reponse" value="0" checked="checked"/>non
        </div>
        <div class="colmed">Service 1 :
        <input name="service1" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Service 2 :
        <input name="service2" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Service 3 :
        <input name="service3" type="text" class="classe3" size="28" />
        </div>
        <div class="colmed">Service 4 :
        <input name="service4" type="text" class="classe3" size="28" />
        </div>
    </div>
    <div class="ligne">
        <div class="col">Date réponse CHD :
        <input name="date_reponse_chd" type="text" class="classe3" size="20" />
        </div>
        <div class="col">Remarques :
        <textarea name="remarques" class="classe3" cols="50" rows="3"></textarea>
        </div>
        <div class="colgrande">Copie du dossier patient :
        <input name="copie" type="text" class="classe3" size="20" />
        </div>
    </div>
</div>
<div align="center">
<input name="valider" type="submit" class="classe4" value="Valider la transmission" />
</div>
 
 
<?php
//connexion à une base de données ACCESS
$bd="Transmission"; // identifiant DSN
$user="Admin"; // login
$password=""; // password
$cnx = odbc_connect( $bd , $user, $password ) or die ("impossible de se connecter");
 
//si c'est connecté
if ($cnx){
 
 
//on créé
 
      // si on clique sur le bouton valider
        if (isset($_POST["valider"])){
 
        // création d'un enregistrement dans la table liste
        // vérification l'enregistrement existe-t-il déja ?
        // on considère que les champs sont remplis correctement
 
           $req="SELECT *
               FROM Liste
               WHERE nom='$_POST[nom]'
               and prenom='$_POST[prenom]'
               and nom_jf='$_POST[nom_jf]'";
 
           $result=odbc_do($cnx,$req) or die ('Erreur dans la requête :  '.$req.' Erreur : '.odbc_error());
 
           $nbcreer=0;
        //on compte le nombre de lignes trouvées.
          while (odbc_fetch_row($result)){
            $nbcreer++;
             }
 
           //Si le nombre est égal à 0, la création est possible sinon, elle doit être refusée.
            If ($nbcreer == 0){
            $req="INSERT into Liste (nom, prenom, nom_jf, ddn, date_demande, demandeur, service, parente, date_reponse, medecin_1, service_1, medecin_2, service_2, medecin_3, service_3,medecin_4,service_4, copie_dossier_patient, remarque, reponse_chd, date_reponse_chd)
               VALUES ('$_POST[nom]','$_POST[prenom]', '$_POST[nom_jf]',#" & $_POST['ddn'] & "#,#" & $_POST['date_demande'] & "#,'$_POST[demandeur]','$_POST[service]','$_POST[parente]',#" & $_POST['date_reponse_sim'] & "#,'$_POST[medecin1]','$_POST[service1]','$_POST[medecin2]','$_POST[service2]','$_POST[medecin3]','$_POST[service3]','$_POST[medecin4]','$_POST[service4]','$_POST[copie]','$_POST[remarques]',$_POST[reponse],#" & $_POST['date_reponse_chd'] & "#)";
              echo $req;
             $result=odbc_do($cnx,$req) or die ('Erreur dans la requête :  '.$req.' Erreur : '.odbc_error());
          }
          else { 
            echo "Enregistrement impossible";
          }
        }
 
//si c'est pas connecté
} 
else{ 
echo "Impossible de se connecter à la base de données"; 
} 
odbc_close( $cnx);//ferme la connexion
?> 
 
 
</form>
</body>
</html>
merci pour votre aide