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 :

Enregistrement MySQL: besoin d'un conseil


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Par défaut Enregistrement MySQL: besoin d'un conseil
    Bonjour à tous,

    Je n'ai pas de problème, juste besoin d'un conseil !

    J'ai dans ma bdd des tables à ralonge (une vingtaine de champs). Lorsque j'enregistre une nouvelle ligne ou que j'en met une à jour avec PHP, j'ai donc une ligne très longue !

    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('INSERT INTO table VALUES("val1", "val2", "val3", "val4"....)');
    Et c'est évidemment la même chose pour les mysql update.

    Cette méthode me pose deux problèmes:
    • les lignes sont longues et donc une source d'erreur
    • très peu pratique lors de l'évolution d'une table


    J'ai donc utilisé à certains moment une autre méthode. Au lieu de mettre la liste exhaustive de mes champs à chaque enregistrement, je donne à mes champs de formulaire (HTML) le même nom que le nom de mes champs en bdd et je fais une boucle pour le mysql_query.

    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST as $key => $value) {
       mysql_query('UPDATE table SET $key="'.$value.'" WHERE id="1"');
    }
    Ou encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST as $value) {
       mysql_query('INSERT INTO table VALUES($value)');
    }
    Cependant je ne suis pas sûr que cette solution soit très "propre" ni performante. J'aurais donc souhaité avoir vos avis, conseils et astuces concernant cette problématique.

    Merci,
    Julien

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Par défaut
    C'est en écrivant mon post que j'ai finalement pensé à construire ma chaîne en amont pour éviter les requêtes multiples:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $string = '';
     
    foreach($_POST as $key => $value) {
       $string.= $key'="'.$value.'"';
       $string.= ', ';
    }
     
    mysql_query('UPDATE table SET $string WHERE id="1"');
    C'est mieux ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2005, 10h12
  2. besoin d'un conseil : système de traduction
    Par Merfolk dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 05/11/2005, 14h10
  3. [iText] besoin d'un conseil
    Par Alec6 dans le forum Documents
    Réponses: 4
    Dernier message: 12/10/2005, 06h56
  4. Game design [Besoin d'aide, conseils....]
    Par poussinphp dans le forum Langage
    Réponses: 23
    Dernier message: 24/09/2005, 09h16
  5. Besoin d'un conseil pour une sélection Access/fichier
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/03/2005, 19h10

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