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 :

Nombre de champs variable pour un meme INSERT INTO


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut Nombre de champs variable pour un meme INSERT INTO
    Bonjour,

    J'ai un souci pour enregistrer des données avec un formulaire générer avec SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($c=@mysql_fetch_array($result1)) {
    echo "<label><input name=\"ligne[]\" value=\"$ligne-$c[id]\" type=\"checkbox\"/>$c[IntCtrl]</label>";
    }
    Pour l'instant cela fonctionne cela me donne le code HTML que je souhaite
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <label><input name="ligne[]" value="v904-1" type="checkbox">test 1</label>
    <label><input name="ligne[]" value="v904-2" type="checkbox">test 2</label>
    <label><input name="ligne[]" value="v904-17" type="checkbox">test 3</label>

    La ou sa se complique c'est que je souhaite que les données soit enregistrées sur la même ligne avec un INSERT INTO

    Avec un foreach j'affiche bien mes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['ligne'] as $valeur){
    echo $valeur;
    }

    mais je ne sais pas comment enregistrer les données dans ma requête puisque le nombre est aléatoire desfois il peut y en avoir 3 comme 15 ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query("INSERT INTO latable  ... 'v904-1' = '1', 'v904-2' = '1', 'v904-17' = '1',...... (Pour l'exemple)
    Les champs de ma table sont nommées : comme la valeur obtenue et pour chaque champs je souhaite mettre une valeur égal a "1".

    Merci de votre aide

  2. #2
    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
    Par défaut
    Visiblement dans ta première requête les données sont "verticales" (un id par ligne).
    Pourquoi se retrouvent-elles "horizontales"dans l'insertion (tous les id sur une seule ligne) ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Bonjour

    Ma 1er requête génère le code HTML du formulaire, La génération du formulaire est différente en fonction des produits que j'ai.

    et la seconde requête insere dans le même Insert.

    La probleme c'est que desfois je vais avoir 5 Checkbox ou 15 par exxemple,

    Donc je ne comprend pas comment intégrer les 5 ou 15 checkbox dans ma requete :/

  4. #4
    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
    Par défaut
    et la seconde requête insere dans le même Insert.
    Certes mais tu n'expliques pas pourquoi tu fais ça.

    Il faut que tu aies une insertion par checkbox, donc faire une boucle suyr les checkbox.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Bonjour

    En faite des personnes enregistres des données (plusieurs fois par jour) et d'une pour économiser la place (il y aura bcp d'enregistrement) le faire en une ligne sera beaucoup plus économe je pense.

    Par exemple :

    Equipe A
    Le formulaire genere 7 controles a réaliser donc une fois que la personne on enregistre les résultats dans SQL en 1 ligne me permettant d'avoir en une seule ligne
    equipe = 'A', v904-1 = '1' , v904-45= '1' , v904-95= '1' , v904-3= '1' ,etc ....

    Equipe B
    Le formulaire genere 15 controles a réaliser donc une fois que la personne on enregistre les résultats dans SQL en 1 ligne me permettant d'avoir en une seule ligne
    equipe = 'B', v904-1 = '1' , v904-45= '1' , v904-95= '1' , v904-3= '1' ,etc ....

    Cela me permet de faire une simple requête pour connaitre quels contrôle on été réalisés pour chaque Équipe.

    J’espère avoir apportée plus d'infos

  6. #6
    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
    Par défaut
    Comme tu l'as réalisé toi même depuis le début, c'est contraire à la logique d'une base de données relationelle.
    Tu as une table contenant les tests, une table contenant les utilisateurs, une table contenant les tests par utilisateur avec donc une ligne par test et par utilisateur.
    Même si tu enregistres des milliers de lignes par jour, ça ne représente que peu de données à stocker.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Insertion de données en bdd avec un nombre de champs variables
    Par spawns dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/05/2015, 17h52
  2. Requete paramétrée avec nombre de champs variable
    Par Braillane dans le forum Accès aux données
    Réponses: 3
    Dernier message: 08/02/2008, 00h09
  3. importer un fichier texte ayant un nombre de champs variables
    Par steelspirit dans le forum kettle/PDI
    Réponses: 4
    Dernier message: 15/01/2008, 11h24
  4. Nombre de paramètres variables pour une procédure [SQLSERVER2005]
    Par chti_vince dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/07/2007, 12h59
  5. Interface avec un nombre de champs variable
    Par vladvad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/06/2007, 12h19

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