IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Valeur par défaut null pour les types numériques [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 65
    Points : 55
    Points
    55
    Par défaut Valeur par défaut null pour les types numériques
    Bonjour,

    J'ai l'impression que, avec Phpmyadmin, on ne peut pas créer un champ "Int" ou "Tinyint" avec une valeur par défaut "null" (c-à-d: valeur non renseignée).
    Il va prendre "0" pour cela.

    Je veux bien laisser la case vide quand la valeur n'est pas renseignée, et je suis obligée de définir le champ comme un entier. Est-ce que je me suis trompée pour ça?? Ou sinon, comment je pourrais faire alors?

    Merci bp par avance pour votre aide et votre attention!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par xianxian620 Voir le message
    Bonjour,

    J'ai l'impression que, avec Phpmyadmin, on ne peut pas créer un champ "Int" ou "Tinyint" avec une valeur par défaut "null" (c-à-d: valeur non renseignée).
    Il va prendre "0" pour cela.

    Je veux bien laisser la case vide quand la valeur n'est pas renseignée, et je suis obligée de définir le champ comme un entier. Est-ce que je me suis trompée pour ça?? Ou sinon, comment je pourrais faire alors?

    Merci bp par avance pour votre aide et votre attention!
    Faisant une recherche sur google, je suis tombé sur ce topic. Et à vrai dire, c'est exactement la question que je me posais. Donc, un petit up afin de savoir comment faire pour qu'une valeur numérique non renseignée n'affiche pas automatiquement "0" mais laisse la case vide...

    Merci d'avance!

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai fais le test pour repondre avec certitude (5.0.51b) : un champ non renseigné produit bien NULL sur un champ INT quand sa valeur par défault est NULL
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par sabotage Voir le message
    J'ai fais le test pour repondre avec certitude (5.0.51b) : un champ non renseigné produit bien NULL sur un champ INT quand sa valeur par défault est NULL
    Exact, je viens égalment de faire le test et ça fonctionne!
    Par contre, j'ai égalment fait le test depuis une page php ou je remplis mes champs dans un formulaire, et là par contre, j'ai le "0" qui se met automatiquement. Y a t'il quelque chose à préciser dans ma requête d'insertion?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ill faut que tu traduises '' ou une valeur non défini par Null
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Vu mes connaissances limités en php, j'ai du mal à comprendre comment intégrer cette condition dans ma requête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	$ajout = $sql->query("INSERT INTO "._TABLE_." VALUES(
    						'',
                                                    '".$_POST["nom"]."',
    						'".$_POST["nombre1"]."',
    						'".$_POST["nombre2"]."',
    						'".$_POST["nombre3"]."'
    						)");

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ne met pas de guillemet autour d'un chiffre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if ($_POST["nombre1"] == '') { $nombre1 = "Null"; }
    else { $nombre1 = intval($_POST["nombre1"]); }
     
    $ajout = $sql->query("INSERT INTO "._TABLE_." VALUES(
    						'',
                                                    '".$_POST["nom"]."',
    						'.$nombre1.',
    						'".$_POST["nombre2"]."',
    						'".$_POST["nombre3"]."'
    						)");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ne met pas de guillemet autour d'un chiffre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if ($_POST["nombre1"] == '') { $nombre1 = "Null"; }
    else { $nombre1 = intval($_POST["nombre1"]); }
     
    $ajout = $sql->query("INSERT INTO "._TABLE_." VALUES(
    						'',
                                                    '".$_POST["nom"]."',
    						'.$nombre1.',
    						'".$_POST["nombre2"]."',
    						'".$_POST["nombre3"]."'
    						)");
    J'ai toujours un "0" qui s'affiche...

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ne met pas de guillemet autour d'un chiffre
    dans mon exemple j'ai laissé les guillemets
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Décidemment, j'y comprend rien...

    Voici ma requête complète, que j'avais simplifié dans le post précédent afin de ne pas vous mettre un gros paté.


    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
    if( isset($_POST['id_joueur']) && !empty($_POST['id_joueur'])) {
     
    if ($_POST['match'] == '') {
    $match = NULL;
    }
    else { $match = intval($_POST['match']); }
    	/* Sql */
    	$sql->DatabaseConnexion();
     
    	/* Insertion */
    	$ajout = $sql->query("INSERT INTO "._TCARRIERE_." VALUES(
    						'',
    						'".$_POST["id_joueur"]."',
    						'".$_POST["club"]."',
    						'".$match."',
    						'".$buts."',
    						'".$passes."'
    						)");			
     
    	$sql->DatabaseClose();
    }
    Donc, j'avais testé avec une seul entré numérique (if ($_POST['match']...) mais mon formulaire possède plusieurs champs qui ont besoin d'un nombre (buts, passes). Sachant qu'également au niveau de la condition, vu que j'en ai déja une concernant l'id_joueur, faut il les combiner ou peut-on laisser comme j'ai fait?

    Le code actuel doit vous hérisser les cheveux sur la tête...

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    vas-tu retirer les guillemets autour des champs numeriques dans ta requete a la fin ou zut ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par sabotage Voir le message
    vas-tu retirer les guillemets autour des champs numeriques dans ta requete a la fin ou zut ?
    Jusqu'à présent, tous mes champs qui comportaient soit du texte, soit des nombres avaient cette même construction... Je ne comprend pas bien, si je veux bien concaténer, je dois bien laisser des guillemets, et entre les crochets, elles sont également indispensables sous peine d'avoir un code erroné nan?


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/08/2014, 16h45
  2. Réponses: 1
    Dernier message: 24/11/2010, 09h41
  3. [OL-2007] Calendrier: Mettre une heure de rappel fixe par défaut (comme pour les Tâches)
    Par Dailyplanet dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 24/08/2009, 09h43
  4. Mettre une valeur par défaut dans un input type='file'
    Par fab76000 dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2009, 19h59
  5. Valeur par défaut null pour les types numériques
    Par xianxian620 dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/05/2008, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo