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

Langage PHP Discussion :

Ajouter des enregistrements aux tables de ma base de données MySQL


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Ajouter des enregistrements aux tables de ma base de données MySQL
    Bonjour tout le monde,

    J'ai une base de données MYSQL qui contient plusieurs tables.

    J'ai aussi un formulaire qui met à jour les tables, je choisis la table que je veux mettre à jour via une liste déroulante.

    Mon code crée une chaine SQL générique, c'est le top.

    J'aimerais maintenant ajouter des enregistrements à la table en cours.

    Sauriez-vous me dire comment je pourrais faire cela ?

    Ma chaine sql actuelle de mise à jour me dit "mettre à jour la table untel où le matricule untel est..."

    ici, ça ne sera pas le cas car l'enregistrement n'existera pas encore et donc le matricule n'existera pas encore.

    Sauriez-vous me mettre sur une piste ?

    J'ai trouvé ce code de départ sur google, il faudrait maintenant pouvoir créer des lignes vides pour y mettre des données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    //connexion à la base de donnée au préalable
     
    $nom = 'Dupont'; 
    $prenom = 'Henri'; 
    $ville = 'Paris'; 
     
    $requete = "INSERT INTO client_tbl (id,nom,prenom,ville) VALUES('','$nom','$prenom','$ville')"; 
    mysql_query($requete) or die ('Erreur '.mysql_errno().' : ' . mysql_error()); 
    ?>
    Un super grand merci d'avance et bon Dimanche à vous tous.

    beegees

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Je ne comprends pas très bien pourquoi tu veux d'abord créer des lignes vides

    Pourquoi ne pas insérer directement de nouvelles lignes avec les données provenant du formulaire?
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Que veux-tu mettre à jour dans ce cas ? Si tu veux pouvoir mettre à jour n table dynamiquement, et de la meme manière :

    Il te suffit d'écrire un menu déroulant et un bouton dans un formulaire, une fois celui-ci validé, tu écris tous les champs de cette table dans des <input type="text" name="nom_champ"/>, et, pour t'éviter une seconde requête, tu stockes les noms des champs dans un <input type="hidden" name="noms_champs" value="nom_champ1,nom_champ2,nom_champ3"/>

    Ensuite dans ta page PHP tu récupères le tout grace à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    // connect et select_db
    $table = $_POST['nom_table'];
    $champs = explode(',',$_POST['noms_champs']);
    $values = Array();
    foreach($champs as $champ){
        $values[] = '"'.$_POST[$champ].'"';
    }
    $sql = 'INSERT INTO '.$table.' ('.implode(',',$champs).') VALUES ('.implode(',',$values).')';
    mysql_query($sql) || die(mysql_error());
    ?>
    J'ai écris ca vite fait et pas testé mais pour ce genre de choses ca doit etre ca le délire.

    Sinon si tu ne veux agir sur qu'une seule table, tu mets simplement un formulaire et une requête sQL d'insert, je ne vois pas pourquoi tu veux pré-créer un enregistrement DB ?

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par ryan Voir le message
    Yop!

    Je ne comprends pas très bien pourquoi tu veux d'abord créer des lignes vides

    Pourquoi ne pas insérer directement de nouvelles lignes avec les données provenant du formulaire?
    Salut,

    Merci pour ta réponse.

    Je veux bien insérer directement les nouvelles lignes de données provenant du formulaire mais je dois d'abord ajouter des lignes vides dans le formulaires pour pouvoir encoder des données dedans

    Merci encore pour l'aide.

    beegees

    Citation Envoyé par ThomasR Voir le message
    Bonjour,

    Que veux-tu mettre à jour dans ce cas ? Si tu veux pouvoir mettre à jour n table dynamiquement, et de la meme manière :

    Il te suffit d'écrire un menu déroulant et un bouton dans un formulaire, une fois celui-ci validé, tu écris tous les champs de cette table dans des <input type="text" name="nom_champ"/>, et, pour t'éviter une seconde requête, tu stockes les noms des champs dans un <input type="hidden" name="noms_champs" value="nom_champ1,nom_champ2,nom_champ3"/>

    Ensuite dans ta page PHP tu récupères le tout grace à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    // connect et select_db
    $table = $_POST['nom_table'];
    $champs = explode(',',$_POST['noms_champs']);
    $values = Array();
    foreach($champs as $champ){
        $values[] = '"'.$_POST[$champ].'"';
    }
    $sql = 'INSERT INTO '.$table.' ('.implode(',',$champs).') VALUES ('.implode(',',$values).')';
    mysql_query($sql) || die(mysql_error());
    ?>
    J'ai écris ca vite fait et pas testé mais pour ce genre de choses ca doit etre ca le délire.

    Sinon si tu ne veux agir sur qu'une seule table, tu mets simplement un formulaire et une requête sQL d'insert, je ne vois pas pourquoi tu veux pré-créer un enregistrement DB ?
    Bonjour,

    Merci pour ta réponse.

    Ton code et ton explication me semble très intéressant.

    Je vais essayer de le comprendre et de l'adapter à mon code, je reviens ensuite pour te dire quoi.

    Encore merci pour ton dévouement et bon Dimanche.

    beegees

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2011, 19h50
  2. [AIDEZ MOI SVP] enregistrer une table dans une base de donné
    Par progfann dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/06/2007, 09h18
  3. Lister les tables d'une base de données MySQL
    Par Legenyes dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 05/07/2006, 18h43
  4. Réponses: 3
    Dernier message: 30/05/2006, 19h09

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