Valeur de départ MySQL

Eléphant du PHP | 243 Messages

07 juin 2012, 19:56

Bonjour,

Je scripte un site et je rencontre un petit problème dans mon espace membre, je vous explique :

J'ai crée une basé de donnée et dans cette base, pendant l'inscription, l'utilisateur renseigne son login, pass, etc ...
Mais il y a aussi la money, ou le rang que j'aimerais, ont pas défaut une valeur, mais je ne sais pas quoi mettre dans la base de donnée pour mettre cette valeur par défaut( si la valeur est null par exemple ).

J'espère que vous m'aurez compris, et merci d'avance de l'aide que vous m'apporterez.

Cordialement,
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 juin 2012, 10:49

salut,

le champ ne doit pas être "nullable" => not null
et doit avoir une valeur par défaut => default 'truc par defaut'


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 243 Messages

08 juin 2012, 16:32

Bonjour, tout d'abord merci de votre réponse.
Voici une image de la table que j'ai crée.

Image

Donc, voici aussi mon script qui permet de rajouter des users dans la bdd.

Code : Tout sélectionner

$sql = 'INSERT INTO users VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['mail']).'", "'.mysql_escape_string($_POST['pseudo']).'", "'.mysql_escape_string($data['rang']).'", "'.mysql_escape_string($data['money']).'")';
Donc je récapitule mon problème, après l'inscription, certains données ( comme money dans mon screen ) ne sont pas écrits dans la bdd ( case reste vide ) et j'aimerais mettre une valeur par défaut qui est 0.

Merci de votre aide.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

ViPHP
ViPHP | 2577 Messages

08 juin 2012, 17:31

je ne suis pas sur qu'une chaine vide et NULL soit la meme chose.

tu peux remplacer
....mysql_escape_string($data['rang']).'", "'.mysql_escape_string($data['money']).'")';
par
.....mysql_escape_string($data['rang']).'",NULL)';

ou mettre 0 dans $data['money']

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 juin 2012, 17:05

Effectivement null c'est pas zéro. C'est null :mrgreen:

Je me demande pourquoi un champ varchar avec un zéro en valeur par défaut ?

Si cette colone est vouée à contenir "une somme" utilisé plutôt décimal.

Sinon utilise une valeur plus explicite que zéro, par exemple null fait très bien l'affaire c'est un peu son boulot ;)


@+
Il en faut peu pour être heureux ......