Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1143 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  phpMyAdmin et default value forcée ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

phpMyAdmin et default value forcée ?

n°1850377
vhAnton
Posté le 12-02-2009 à 14:34:43  profilanswer
 

EDIT : Changement de titre, car changement de probleme
 
Bonjour,
Desolé pour ce titre peu explicite, mais je ne saurai faire mieux.
 
Je suis ammené a stoquer les DESCRIBE de tables, et j'ai un probleme de NULL;
Pour la default value, pour certain champs elle est a NULL, pour d'autre a 0 (par exemple), et pour d'autre non renseigner. Quand je fait ma requete describe, et que je souhaite le recuperer, il me transforme mon "NULL", en rien. Je ne peut pas lui en vouloir.. Mais du coup je ne peut pas savoir si il y a une default value de valeur NULL, ou si elle n'a pas été renseigner.
 
Je croyais m'en sortir avec
if($val==NULL) {$val=='NULL';}
Sauf que si le default value n'a pas été renseignée, le $val==NULL renvoie vrai.
 
Je suis dans une impasse.
 
Merci d'avance
 
PS : Je n'utilise pas Oracle, mais MySQL (j'ai lu que oracle avait des specificités la dessus)


Message édité par vhAnton le 12-02-2009 à 17:16:16
mood
Publicité
Posté le 12-02-2009 à 14:34:43  profilanswer
 

n°1850386
flo850
moi je
Posté le 12-02-2009 à 14:55:51  profilanswer
 

$val === 0  
$val === ''
$val === false
si aucun de ces cas, alors c'est null ( sauf oubli )
les 3 egals permettent de verifier le type en même temps

Message cité 1 fois
Message édité par flo850 le 12-02-2009 à 14:56:04

---------------

n°1850393
vhAnton
Posté le 12-02-2009 à 15:05:18  profilanswer
 

J'ai d'autres valeurs par defaut possible ("(par exemple)" ), je vais quand meme creuser cette voie.
 
Merci

n°1850396
vhAnton
Posté le 12-02-2009 à 15:09:12  profilanswer
 

J'ai des chaines de caractères par defaut, des flotants, meme des dates...

n°1850398
flo850
moi je
Posté le 12-02-2009 à 15:12:02  profilanswer
 

oui , mais là , ce que je te donne, c'est juste pour differencier ce qui est null de ce qui est évalué a null
 
pour le reste, en fonction de ton type de champ , tu sais si tu as la chaine de caractères '1.235' ou la valeur float 1.235


---------------

n°1850401
Profil sup​primé
Posté le 12-02-2009 à 15:14:27  answer
 

flo850 a écrit :

$val === 0  
$val === ''
$val === false
si aucun de ces cas, alors c'est null ( sauf oubli )  
les 3 egals permettent de verifier le type en même temps


le but est simplement de savoir si $val est null ? Alors :

Code :
  1. $val === NULL

:??:

n°1850409
vhAnton
Posté le 12-02-2009 à 15:22:38  profilanswer
 

Luc@s ==> Pour une raison que j'ignore, ca ne fonctionne pas. J'ai des default value vide, non renseignées, et $val===NULL renvoie Vrai..

n°1850412
vhAnton
Posté le 12-02-2009 à 15:33:01  profilanswer
 

La ou c'est vraiment bizard, c'est que ca fonctionne parfois, mais pas pour tous... Jsuis quand meme pas fou
 
Du coup le probleme doit venir de ma bdd, jvais aller farfouiller.
 
Merci


Message édité par vhAnton le 12-02-2009 à 15:34:35
n°1850458
skeye
Posté le 12-02-2009 à 16:20:45  profilanswer
 

is_null?


---------------
Can't buy what I want because it's free -
n°1850467
olivthill
Posté le 12-02-2009 à 16:34:31  profilanswer
 

Ou bien, reprendre la solution adoptée en pro*C pour Oracle qui consiste à avoir deux variables pour chaque champ : $val et $val_flag_null. C'est un peu lourd d'avoir deux variables, mais c'est assez simple à l'usage.

mood
Publicité
Posté le 12-02-2009 à 16:34:31  profilanswer
 

n°1850508
vhAnton
Posté le 12-02-2009 à 17:13:03  profilanswer
 

is_null oui, on ne fait pas plus simple indeed..
 
Tous cela ne fonctionnait pas, ou mal car j'ai des choses bizard dans ma bdd...
 
Quand je regarde la structure de ma table dans phpMyAdmin, pour le champ X de ma table Y, je n'ai pas de default value. Par contre, si je fait un DESCRIBE Y;  
Surprise ! La je voit <i>NULL</i> en default value (pas pour tous les champs qui n'ont pas de default value..).
 
J'édite mon champ, le default value est vide. Dans le doute je tape une default value, je valide, il aparait bien (dans la structure et dans le describe), je ré-édite, suprime ma default value (le input type text vide quoi..), je valide. Et la rebelotte, dans la structure tel que phpMyAdmin me l'affiche, pas de default value, et dans le describe, une default value a NULL.
 
Je suis un peu perdu, ca vous est déjà arrivé ?
 
Merci

n°1850891
vhAnton
Posté le 13-02-2009 à 15:58:00  profilanswer
 

(up =s)
 
Personne n'a d'idée ? Le probleme parait surement un peu abstrait, mais je ne comprend vraiment pas, les type de mes champs sont de simple varchar la plupart du temps. Et je n'ai pas de valeur par defaut, je n'en veut pas, il n'y en a pas dans la structure de ma table comme me l'affiche phpMyAdmin, mais un describe sur la table me dit qu'il y en a (et pas pour tous les champs, mais je ne trouve aucun recoupement pertinent..).
 
Merci

n°1850899
skeye
Posté le 13-02-2009 à 16:10:54  profilanswer
 

vhAnton a écrit :

(up =s)
 
Personne n'a d'idée ? Le probleme parait surement un peu abstrait, mais je ne comprend vraiment pas, les type de mes champs sont de simple varchar la plupart du temps. Et je n'ai pas de valeur par defaut, je n'en veut pas, il n'y en a pas dans la structure de ma table comme me l'affiche phpMyAdmin, mais un describe sur la table me dit qu'il y en a (et pas pour tous les champs, mais je ne trouve aucun recoupement pertinent..).
 
Merci


 
Un champ non obligatoire sans valeur par défaut aura forcément "null" comme valeur par défaut, non?[:dawao]


---------------
Can't buy what I want because it's free -
n°1850915
vhAnton
Posté le 13-02-2009 à 16:25:35  profilanswer
 

J'ai envie de dire non. En tout cas dans la pratique c'est prouvé,  
Extrait d'un describe d'une de mes table :
Field                         Type                 Null           Default
prenom                     varchar(64)       NO            NULL    
nom_jeune_fille         varchar(64)       NO

Message cité 1 fois
Message édité par vhAnton le 13-02-2009 à 16:26:39
n°1850918
vhAnton
Posté le 13-02-2009 à 16:27:59  profilanswer
 

Aie, j'ai mal compris ton message, sans valeur par defaut il aura null comme valeur par defaut, oui, mais je ne veut pas, mon extrait ci-dessus reste pertinent, un NOT NULL avec comme valeur par defaut NULL...

n°1850919
skeye
Posté le 13-02-2009 à 16:28:02  profilanswer
 

vhAnton a écrit :

J'ai envie de dire non. En tout cas dans la pratique c'est prouvé,  
Extrait d'un describe d'une de mes table :
Field                         Type                 Null           Default
prenom                     varchar(64)       NO       NULL    
nom_jeune_fille         varchar(64)       NO


oui enfin dans la pratique si tu insères une ligne sans renseigner le nom de jeune fille (design de la base douteux si tu veux mon avis, d'ailleurs), tu auras null dans ce champ.:o


---------------
Can't buy what I want because it's free -
n°1850926
vhAnton
Posté le 13-02-2009 à 16:32:06  profilanswer
 

Long story short, je stock des données de mes tables dans un fichier CSV. Puis je fait des réinsertions (outil de duplication). Sauf que si j'ai des values NULL, j'ai un insert de la sorte ("ububu","toto",,,).
 
Et pour des champs int, il me met des 0 a la place des NULL dans la base de donnée (malgres un default value a NULL).
 
Donc pour contourner cela, j'ai les describe de ma bdd, et si le champ default value de mon field est a NULL, je fait un insert ("ububu","toto",NULL,NULL,NULL).
 
Avec mes problemes de default values atypiques, je me retrouve a metre un NULL dans un champ qui est NOTNULL, j'obtient bien evidement un $$$$$ cannot be null.

n°1850928
vhAnton
Posté le 13-02-2009 à 16:33:57  profilanswer
 

Aie aie aie, tu passe du =o jaune au =o rouge, je crains ta patience...

 

Design tres douteux je suis d'accord (je ne suis pas le créateur, stage..).
Voir mon message au dessus pour t'expliquer pourquoi ca me pose probleme.

 


Merci


Message édité par vhAnton le 13-02-2009 à 16:36:05
n°1850933
skeye
Posté le 13-02-2009 à 16:42:09  profilanswer
 

C'est ton outil qui fait l'insertion à partir de ton fichier csv qui est buggé, là, non?
Si un champ n'est pas renseigné tu ne l'insères pas, point barre, tu ne mets pas null explicitement ou quoi que ce soit...:o


---------------
Can't buy what I want because it's free -
n°1850937
vhAnton
Posté le 13-02-2009 à 16:53:15  profilanswer
 

Mmmm, c'est pas faux.
Il se trouve que je fait mes insert sous la forme
INSERT INTO matable VALUES (......);
Du coup je n'ai pas trop le choix, ducoup il faudrait que je compare ma ligne CSV avec mon DESCRIBE pour construire une requete propre de la forme
INSERT INTO matable (champ,champ,champ) VALUES (......)
 
Ca va encore me faire faire du traitement pour chaque insert a faire, et vu le nombre de lignes de mes fichiers CSV, jvais pas tarder a tomber sur du TIMEOUT..
 
edit : Merci


Message édité par vhAnton le 13-02-2009 à 16:54:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  phpMyAdmin et default value forcée ?

 

Sujets relatifs
Appelle une value dans phpProblèmes avec Joomla & phpMyAdmin
[STRUTS] Taglib INPUT et attribut valueMysql/phpmyadmin Exportation csv (plus d'options?)
[ASP.NET] Value cannot be null. après un databindAccès impossible à phpmyadmin
Fatal error: Can't use function return value in write context inJpgraph - Afficher un seul point avec $lineplot->value->show();
Comment afficher un value dans un input de type fileRéglage PHPMYADMIN
Plus de sujets relatifs à : phpMyAdmin et default value forcée ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR