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

SQL Procédural MySQL Discussion :

Form base tableaux


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut Form base tableaux
    Bonjour,
    J'ai créer un formulaire qui comporte 5 champs sur une ligne.
    j'ai reproduite 6 x cette ligne donc j'ai un formulaire avec 6 x nom que j'ai nommé nom_1, nom_2, nom_3 etc... et la même chose avec les autres champs.
    J'ai créer une Table comme ceci
    CREATE TABLE `webmaster` (
    `ref_1` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_1` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_1` text collate latin1_german1_ci NOT NULL,
    `tel_client_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_2` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_2` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_2` text collate latin1_german1_ci NOT NULL,
    `tel_client_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_3` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_3` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_3` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_3` text collate latin1_german1_ci NOT NULL,
    `tel_client_3` varchar(20) collate latin1_german1_ci NOT NULL

    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
    Cela fonctionne +/- sauf que dans ma base ci les trois lignes (donc 15 champs) sont rempli cela s'incrit sur une seul ligne dans ma base.
    ref_1 nom_1 adr_1 rem_1 tel_1 ref_2 nom_2 adr_2 rem_2 tel_2 ref_3 nom_3 adr_3 etc...
    Mais je voudrais quelle s'incrive de la manière suivante.
    ref_1 nom_1 adr_1 rem_1 tel_1
    ref_2 nom_2 adr_2 rem_2 tel_2
    ref_3 nom_3 adr_3 rem_3 tel_3
    Pourriez-vous me dire comment réalisé cela ?

    D'avance merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    pourquoi ne pas séparer ta table ainsi :

    id, ref, nom, adr_client, tel_client, rem_client ?

    comme ça c'est plus simple ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par Swoög
    pourquoi ne pas séparer ta table ainsi :

    id, ref, nom, adr_client, tel_client, rem_client ?

    comme ça c'est plus simple ?
    Oui cette solution serais pas mal, mais le problème est que je dois récuperer toutes les données du jour pour quelle soit visible dans un tableau.

    Ou alors je n'ai peut-être pas comprid ta réponse ????

    Tu me dit de faire finalement une table par ligne ????


    Merci

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    je pense qu'il y a une erreur de vocabulaire quelque part, personnellement, je te conseillais de changer le format de ta table de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CREATE TABLE `webmaster` (
    `ref_1` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_1` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_1` text collate latin1_german1_ci NOT NULL,
    `tel_client_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_2` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_2` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_2` text collate latin1_german1_ci NOT NULL,
    `tel_client_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_3` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_3` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_3` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_3` text collate latin1_german1_ci NOT NULL,
    `tel_client_3` varchar(20) collate latin1_german1_ci NOT NULL
     
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
    à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `webmaster` (
    `id` INT auto_increment NOT NULL,
    `ref` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client` text collate latin1_german1_ci NOT NULL,
    `tel_client` varchar(20) collate latin1_german1_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
    ensuite, si tu veux regrouper tes lignes, tu peux le faire de différentes façons :

    ajouter une table supplémentaire dans ta BDD pour les regrouper, ou ajouter un champ dans la table pour leur faire une référence commune, etc...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par Swoög
    je pense qu'il y a une erreur de vocabulaire quelque part, personnellement, je te conseillais de changer le format de ta table de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CREATE TABLE `webmaster` (
    `ref_1` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_1` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_1` text collate latin1_german1_ci NOT NULL,
    `tel_client_1` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_2` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_2` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_2` text collate latin1_german1_ci NOT NULL,
    `tel_client_2` varchar(20) collate latin1_german1_ci NOT NULL,
    `ref_3` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom_3` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client_3` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client_3` text collate latin1_german1_ci NOT NULL,
    `tel_client_3` varchar(20) collate latin1_german1_ci NOT NULL
     
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
    à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `webmaster` (
    `id` INT auto_increment NOT NULL,
    `ref` varchar(10) collate latin1_german1_ci NOT NULL,
    `nom` varchar(20) collate latin1_german1_ci NOT NULL,
    `adr_client` varchar(50) collate latin1_german1_ci NOT NULL,
    `rem_client` text collate latin1_german1_ci NOT NULL,
    `tel_client` varchar(20) collate latin1_german1_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
    ensuite, si tu veux regrouper tes lignes, tu peux le faire de différentes façons :

    ajouter une table supplémentaire dans ta BDD pour les regrouper, ou ajouter un champ dans la table pour leur faire une référence commune, etc...
    Merci j'avais déjà essayé cette solution , mais le problème est que dans cette solution ci quelque rempli les trois ligne du formulaire seule la 3 eme ligne s'incrit dans ma base.
    Car tu est d'accord avec moi que dans ta solution je nomme 3 x le même champs (il y aurais 3 x ref "par exemple ?)
    Mais il est tout à fait possible que je n'ais pas comprid.

    Merci

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    bah, en fait nan, tu fais trois insertions, c'est tout... ensuite je vois pas vraiement où est le problème, c'est la structure de ta BDD, rien t'oblige à donner la même structure à ton formulaire, et même dans ce cas, tu peux toujours leur donner un nom du style ref[] ou line1[ref] ce qui fait que ça te génèrera de beaux tableaux pour les résultats ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par Swoög
    bah, en fait nan, tu fais trois insertions, c'est tout... ensuite je vois pas vraiement où est le problème, c'est la structure de ta BDD, rien t'oblige à donner la même structure à ton formulaire, et même dans ce cas, tu peux toujours leur donner un nom du style ref[] ou line1[ref] ce qui fait que ça te génèrera de beaux tableaux pour les résultats ^^
    Question:

    si mon formulaire comporte 3 champs nommé ref_1 ref_2 ref_3 ta commande ref[] va reprendre les données des champs ref 1 2 3 ????

    Merci

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Pourriez-vous me dire ci ceci est codé correctement ??
    $sql = "INSERT INTO test_webmaster VALUES
    ('".mysql_escape_string[ref_]."','".mysql_escape_string[nom_]."','".mysql_escape_string[adr_client_]."','".mysql_escape_string[rem_client_]."','".mysql_escape_string[tel_client_]."')";
    D'avance merci

  9. #9
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    non, là on rentre dans le domaine du PHP...

    comme un exemple vaut mieux qu'un long discours, fait un var_dump ou un print_r sur $_POST, tu comprendras de suite la structure des données communiquées, c'est le plus simple...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par Swoög
    non, là on rentre dans le domaine du PHP...

    comme un exemple vaut mieux qu'un long discours, fait un var_dump ou un print_r sur $_POST, tu comprendras de suite la structure des données communiquées, c'est le plus simple...
    Ou voulais tu que j'introduise ta méthode [ref] ??
    Dans mes champs de formuliare ou dans ma base (le nom des colonnes?)

    Merci

  11. #11
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    dans le formulaire, en HTML...

    mais prend tout...

    soit tu nommes tes champs de fomulaire ref[], nom_client[], etc..;

    soit line1[ref], line1[nom_client] puis line2[ref], line2[nom_client] etc...

    personnellement, je pense que le second modèle te sera plus utile...


    ensuite, tu peux également conserver ton ancienne façon de nommer tes champs, et faire une insertion multiple (ou plusieurs insertions)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par Swoög
    dans le formulaire, en HTML...

    mais prend tout...

    soit tu nommes tes champs de fomulaire ref[], nom_client[], etc..;

    soit line1[ref], line1[nom_client] puis line2[ref], line2[nom_client] etc...

    personnellement, je pense que le second modèle te sera plus utile...


    ensuite, tu peux également conserver ton ancienne façon de nommer tes champs, et faire une insertion multiple (ou plusieurs insertions)
    Encore un détail svp

    Pourriez-vous me donné un exemple de table

    pour introduire les donnée d'un formulaire

    Table champs 1 champs 2 champs 3

    Mon Formulaire

    Champs 1 champs 2 champs 3 champs4 champs 5 champs 6

    Les données du formulaire Champs 1 et champs 3 doivent aller dans lechamps de la table champs 1.
    Les données du formulaire Champs 2 et champs 4 doivent aller dans lechamps de la table champs 2.
    Les données du formulaire Champs 3 et champs 6 doivent aller dans lechamps de la table champs 3.

    Voilà merci encore !

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

Discussions similaires

  1. Form based authentification en ssl sur Jboss
    Par Slash696 dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 07/02/2007, 16h47
  2. Réponses: 5
    Dernier message: 07/02/2007, 14h42
  3. [CR XI]Mise en forme et tableaux
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 05/09/2006, 10h51
  4. Problème insertion form & base
    Par dunbar dans le forum Administration
    Réponses: 3
    Dernier message: 11/07/2006, 08h52
  5. [ACCESS-EXCEL] Mise en forme des tableaux
    Par mpascolo dans le forum Access
    Réponses: 4
    Dernier message: 20/10/2005, 16h03

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