|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 12 ![]() |
Bonjour,
J'ai un soucis avec mon formulaire PHP. Lorsque je ne remplis pas tous les champs dates le message suivant apparait : Citation:
Quelqu'un a déjà rencontré ce problème ? Voici mon script : Code :
|
|||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
=> Si tes champs doivent etre obligatoires dans la base, il faut qu'ils le soient dans le formulaire et inversement.
Si le schema de la table défini des valeurs par defaut pour les champs, il faudrait plutot ne PAS les renseigner au lieu de les renseigner a une valeur vide. Cela passe par la construction d'une requete dynamique (qui n'ajoute que les champs renseignés)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 12 ![]() |
les champs ne sont pas obligatoires dans ma base, ni dans mon formulaire, ils n'ont pas non plus de valeurs par défaut.
ça veut dire quoi "utilisation non valide de pointeur null" dans le message d'erreur ? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
j'en sais rien, peut etre te connecte tu mal a la base, mais tes fonctions de connexion ont l'air correcte (mais bon, jamais utilisé ODBC)
Tu confirme que ca fonctionne si tu remplis tout les champs ?
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 50 ![]() |
Je crois qu'une date ne peux jamais etre null
par défaut mets une valeur bidon, du style 00/00/0000 là tu auras plus de problème, et quand tu voudras réafficher tes infos, si tu tombe sur la valeur 00/00/0000, tu affiches un blanc à l'ecran. C'est un peu de la bidouille, mais bon, ça marche ! |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
oui, il est possible que certains element n'aime pas le format donné (a savoir '') c'est pour ca que je conseillais de faire une requete dynamique afin de ne renseigner QUE les champs spécifiés et pas les autres.
exemple : si tu ne remplis qu'un seul champ, ta requete ne sera pas : INSERT into table(champ1, champ2, champ3, ...) values ('valeur1', '', '', ...) mais : INSERT into table(champ1) values ('valeur1') Ce n'est pas tres compliqué a mettre en place si tu utilise des tableaux et la methode explode
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#7 | |||
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 12 ![]() |
tu m'as mis un doute alors j'ai essayé en remplissant tous les champs (ce que je pensais avoir déjà fait !!!) et ça marche pas non plus !
le message d'erreur est le même et la table Access ne se remplit pas. par contre si je change ma requête INSERT en mettent ça : Code :
si je ne remplis pas tous les champs dates le message d'erreur est : Citation:
je sais pas si j'ai été claire sur ce point ???!!! |
|||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 12 ![]() |
je peux pas mettre 00/00/0000 par défaut sinon je me fais jeter par Access !!!
je vais essayer avec explode, enfin si j'arrive à comprendre comment ça marche |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
je sais, tu va trouver ca lourd mais...
il faut eviter d'utiliser $_POST[machin] et preferer $_POST['machin'] mon dieu... j'avais pas vu les &... je croyais qu'ils étaient dans la requete, mais non ! La chaine s'interrompant avant, il s'agit bien de code php... L'operateur de concatenation est le "point" !! pas le "et commercial" !! De plus il me semblais que # en sql commentait le reste de la ligne, là apparement ca veux dire autre... hum... tu est sur ? Comme dit précédemment, je prefererais quelque chose comme ca (sans & et sans #...) : Code :
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
||
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 12 ![]() |
YOUPI tralala tsoin tsoin !!!!
ça marche ! merci beaucoup Fladnag ! @+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com