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

PHP & Base de données Discussion :

Recupération de données facultatives d'un formulaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut Recupération de données facultatives d'un formulaire
    Salut à tous,

    j'ai un forumlaire XHTML classqiue avec des nombreux champs texte et liste déroulantes.
    Mon souci est qu'une bonne partie de ces informations est facultative. Je dois donc insérer soit les valeurs du formulaire soit un NULL, selon les cas.

    A l'arrivée, mon $_POST peut contenir 10 valeurs comme 3.

    Ces données doivent ensuite être insérée dans uen base MySQL5.

    Je pensais faire ceci pour mes données facultatives:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['prenom']) && !empty($_POST['prenom'])
         $prenom=$_POST['prenom'];
    else
         $prenom=null;
    Le répéter avec toutes les variables qui peuvent être vides.
    Et ensuite faire cette requete SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="insert into order values($prenom,.......)"
    Il y aurait une meilleur façon de faire ?
    Des commentaires/suggestions ?
    Merci

    PS:pour simplifier le code j'ai simplifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prenom=mysql_real_escape_string(trim($_POST['prenom']))
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prenom=$_POST['prenom']

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut,
    je vais peut être dire une connerie, mais tu peux faire le test sur les variables obligatoires sans pour autant le faire sur celles qui sont facultatives:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['prenom']) && !empty($_POST['prenom'])
    $prenom=$_POST['prenom'];
    $variable_facultative = $_POST['variable_facultative'];
    $query=mysql_query("insert into order values('$prenom','$variable_facultative',.......)"
    Les variables non renseignés s'incriront automatiquement en null dans mysql.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    Salut,

    dans l'exemple que je donnais, prenom est une variable qui peut ne pas etre defini par l'utilisateur (champ laissé blanc dans le formulaire)

    Que ce passera-t-il si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prenom=$_POST['prenom'
    et l'utilise dans uen requete SQL alors que cette valeur n'existe pas ?

    $prenom vaudra-t-il NULL ?

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    Si je tente de récupérer toutes les variables, définies ou non avec un long:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $mavariable=$_POST['mavariable'];
    $mavariable2=$_POST['mavariable2'];
    $mavariable3=$_POST['mavariable3'];
    $mavariable4=$_POST['mavariable4'];
    .....
    a l'arrivée j'ai une requete SQL du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO <matable> VALUES (,,,,<variable_definie>,<variable_definie>)
    car aucune des données n'a été définie.

    Est-ce correct de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!isset($_POST['mavariable']) && empty($_POST['mavariable']))
    $mavariable="NULL";
    Pour que la requete SQL suivante soit générée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO <matable> VALUES (NULL,NULL,NULL,NULL,NULL,<variable_definie>,<variable_definie>
    )

  5. #5
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    Oui, je pense que c'est correct. Est ce que tu as fait le test? c'est le meilleur moyen d'avoir la réponses définitive.

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    Cela fontctionne mais je ne savais pas si c'était treès académique.

    Je pensais qu'il existait une valeur spéciale PHP qui vaut NULL sous MYSQL.

    En tous cas, ainsi cela marche !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2010, 12h31
  2. Réponses: 1
    Dernier message: 02/05/2010, 11h26
  3. Recupération de données formulaire jQuery
    Par kingd6 dans le forum jQuery
    Réponses: 3
    Dernier message: 26/06/2009, 11h23
  4. Recupération de données d'un formulaire
    Par Prince Mch dans le forum Langage
    Réponses: 1
    Dernier message: 16/01/2008, 15h03
  5. recupération de donnée d'un formulaire
    Par jsdar dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2007, 02h38

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