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 :

[Conception] Optimisation des traitements de variable


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut [Conception] Optimisation des traitements de variable
    Bonjour ,
    voila je rencontre un probleme pour la construction de ma requette
    j'ai un formulaire qui contient beaucoup de checkbox et toutes mes variables on pour valeurs 1 ou 0 :

    une fois le formulaire posté a la page qui va traité les infos et envoyer la requette , ni a t-il pas un moyen de mettre toutes ces variables dans un tableau ,

    pour pouvoir apres avec la requette dire affiche moi toutes les lignes de la table xxx qui contiennent tous noms de champs (du tableau traiter) = 1

    un petit shéma pour etre bien compris:moi je veux que ma requette ne traite que les valeurs $a et $d et je veux rapatrié toutes les lignes qui ont pour valeur
    $a et $d =1 etc.....; en fait je veux pas traiter les 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $a=$_POST['a'];  valeur 1
    $b=$_POST['b'];  valeur 0
    $c=$_POST['c']   valeur 0
    $d=$_POST['d'];  valeur 1

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je ne sais pas si c'est ce que tu veux mais tu pourrais faire un traitement similaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $tab = array();
    for($i = 0; $i < count($_POST['nomcheckbox']); $i++)
    {
      if($_POST['nomcheckbox'] == 1)
          $tab[] = $_POST['nomcheckbox'][$i];
    }
    Ce qui aura pour but de stocker dans un tableau toutes tes valeurs à 1

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Ok kerod , Bon Bon si je comprend bien sa veux dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tab = array();     $tab c'est un tableau OK
    
    for($i = 0; $i < count($_POST['nom checkbox']); $i++)   
    
    $i=0 Ok /////  $i < count($_POST['nom checkbox']) $i< au nombre de valeur posté  c sa ?  /////$i++  incrémente de 1 ok
    {
      if($_POST['nomcheckbox'] == 1) / si va leur de nomcheckbox ==1 OK
    
          $tab[] = $_POST['nomcheckbox'][$i]; / met nomcheckbox dans le $tab  c'est sa ? 
    }

    apres comment je fait ma requette comme sa
    select xxx where $tab=1 ?????????

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Il faut donner le nom de la table aussi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ FROM table WHERE nom_champ1= valeur1 AND nom_champ2=valeur2...
    Mais là t'es pas dans la bonne optique, qu'est-ce que tu veux faire plus précisément ? Tu veux récupérer que certains champs suivant les cases cochées ? Ou suivant une certaine condition ? Si oui laquelle parce que c'est pas du tout clair ton truc.

    Et cf signature pour l'orthographe merci.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    oui c'est sa

    j'ai un formulaire de recherche d'annonce automobile
    et certains paramettres de recherches sont sous forme de checkbox
    cherche une peugeot avec check1(clim ) check2(lamp xenon ) etc....

    donc c'est deux chek sont coché alors je veux que tout les annonces qui sont des peugeots qui on la clim et lampes xenon sortent ,meme si certaine peugeot on d'autre options qui non pas ete demander par le formulaire , l'important c'est que je puisse affiché les annonces qui on au moins les valeurs reclamer ( clim et lampe )

    c'est pour sa que je cherche a faire une requette qui ne prend en compte uniquement les elements demander

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ca dépend comment tu stockes les options dans ta table, montre nous sa structure et ça sera bon.

    (bis) Et lis ma signature pour l'orthographe car tu ne l'as pas fait

    merci
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Désolé pour l'horographe , je vais faire attention ,
    voila la structure des tables , mais je peu encore la modifié si necessaire !!

    la quasi majorité des champs sont des 1 ou 0

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    -- phpMyAdmin SQL Dump
    -- version 2.6.3-pl1
    -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
    -- 
    -- Serveur: nebil.xxx.titi.fr
    -- Généré le : Samedi 29 Juillet 2006 à 23:21
    -- Version du serveur: 5.0.23
    -- Version de PHP: 4.4.2
    -- 
    -- Base de données: `zuzu`
    -- 
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `annonce`
    -- 
     
    CREATE TABLE `annonce` (
      `id` tinyint(5) NOT NULL auto_increment,
      `cat` tinyint(3) NOT NULL,
      `souscat` char(4) collate latin1_general_ci NOT NULL,
      `annee` char(4) collate latin1_general_ci NOT NULL,
      `prix` varchar(7) collate latin1_general_ci NOT NULL,
      `kilometrage` varchar(6) collate latin1_general_ci NOT NULL,
      `carburant` tinyint(1) NOT NULL,
      `carrosserie_type` tinyint(2) NOT NULL,
      `carrosserie_couleur` tinyint(2) NOT NULL,
      `vehicule_type` tinyint(1) NOT NULL,
      `puissance` smallint(3) NOT NULL,
      `transmission` smallint(1) NOT NULL,
      `date_annonce` char(8) collate latin1_general_ci NOT NULL,
      `accident` tinyint(1) NOT NULL,
      `clim` tinyint(1) NOT NULL,
      `clim_auto` tinyint(1) NOT NULL,
      `cuir` tinyint(1) NOT NULL,
      `vitr_elec` tinyint(1) NOT NULL,
      `gps` tinyint(1) NOT NULL,
      `sieg_elec` tinyint(1) NOT NULL,
      `toi_ouvran` tinyint(1) NOT NULL,
      `sieg_chauf` tinyint(1) NOT NULL,
      `radio_cd` tinyint(1) NOT NULL,
      `radio_cass` tinyint(1) NOT NULL,
      `abs` tinyint(1) NOT NULL,
      `bag_cond` tinyint(1) NOT NULL,
      `bag_pass` tinyint(1) NOT NULL,
      `bag_lat` tinyint(1) NOT NULL,
      `lamp_xenon` tinyint(1) NOT NULL,
      `verou_cent` tinyint(1) NOT NULL,
      `alarm` tinyint(1) NOT NULL,
      `anti_dem` tinyint(1) NOT NULL,
      `anti_pat` tinyint(1) NOT NULL,
      `cont_dyn` tinyint(1) NOT NULL,
      `quatrex4` tinyint(1) NOT NULL,
      `tuning` tinyint(1) NOT NULL,
      `jante_allia` tinyint(1) NOT NULL,
      `ordi_bord` tinyint(1) NOT NULL,
      `radar_recul` tinyint(1) NOT NULL,
      `feux_anti` tinyint(1) NOT NULL,
      `direct_assis` tinyint(1) NOT NULL,
      `regul_vites` tinyint(1) NOT NULL,
      `garantie` tinyint(1) NOT NULL,
      `offre_pro` tinyint(1) NOT NULL,
      `offre_parti` tinyint(1) NOT NULL,
      `uniquement_avec_photo` tinyint(1) NOT NULL,
      `pays` varchar(15) collate latin1_general_ci NOT NULL,
      `cp` tinyint(5) NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `id` (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `images`
    -- 
     
    CREATE TABLE `images` (
      `IdImage` tinyint(3) NOT NULL,
      `Commentaire` varchar(50) collate latin1_general_ci NOT NULL,
      `Alt` varchar(20) collate latin1_general_ci NOT NULL,
      `Path` varchar(20) collate latin1_general_ci NOT NULL,
      `Pathminiature` varchar(20) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`IdImage`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `membre`
    -- 
     
    CREATE TABLE `membre` (
      `id` tinyint(5) NOT NULL auto_increment,
      `nom` varchar(15) collate latin1_general_ci NOT NULL,
      `prenom` varchar(15) collate latin1_general_ci NOT NULL,
      `adresse` varchar(50) collate latin1_general_ci NOT NULL,
      `cp` char(5) collate latin1_general_ci NOT NULL,
      `pays` char(1) collate latin1_general_ci NOT NULL,
      `tel` char(10) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `script_categorie`
    -- 
     
    CREATE TABLE `script_categorie` (
      `id_cat` int(5) NOT NULL auto_increment,
      `designation` varchar(50) collate latin1_general_ci NOT NULL,
      UNIQUE KEY `designation` (`designation`),
      KEY `id_cat` (`id_cat`)
    ) ENGINE=MyISAM AUTO_INCREMENT=121 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=121 ;
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `script_sous_categorie`
    -- 
     
    CREATE TABLE `script_sous_categorie` (
      `id_scat` int(5) NOT NULL auto_increment,
      `idcat` int(5) NOT NULL default '0',
      `designation` varchar(50) collate latin1_general_ci NOT NULL default '',
      KEY `idcat` (`idcat`),
      KEY `id_scat_2` (`id_scat`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1134 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1134 ;

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Alors c'est parti.

    En supposant que tes checkbox aient exactement le même nom que tes options.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $req = "SELECT * FROM annonce WHERE 1=1";
    for($i = 0 ; $i < count($_POST['nom checkbox']) ; $i++)
       $req .= " AND " . $_POST['nomcheckbox'][$i] . "=1";
    $res = mysql_query($req) or die($req . " => " . mysql_error());
    while($row = mysql_fetch_array($res))
       // Traitement avec $row['cat'], $row['prix'], ...
    Pas testé.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    A ta place (je n'y suis pas), je commencerais par revoir la structure de la base de données. Mettre une colonne par accessoire dans une même table = pas bon du tout, car si demain tu dois ajouter un nouvel accessoire, il te faudras modifier la bdd ainsi que le programme. Donc :

    table 'annonce'
    id
    etc...

    table 'accessoire'
    id
    nom

    table 'annonce_accessoire'
    id_annonce
    id_accessoire

    avec pour une annonce autant de ligne que d'accessoires.

    De plus avec ça, toutes tes checkbox peuvent porter le même nom, avec comme value la clé de l'accessoire.

    Pour les catégories et sous-catégories, une seule table suffit :

    table 'categorie'
    id
    nom
    id_pere

    Ex : categorie voiture, sous-categorie poussette, sous-catégorie chariot

    1 voiture 0
    2 poussette 1
    3 chariot 1

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Merci JWhite j'ai pas eu encore le temps de tester ta proposition de requete , j'y reviendrais si tu le permet ,

    Jeca , j'ai pas tres bien compris ta solution qui apparement apporte un avantage certain celui de na pas toucher au code ni a la bdd si j'ajoute une option en sus !!!
    le formulaire correspond au contenu de la table donc quelque que soit la structure de mes tables il faut bien les modifiés si je modifie le formulaire !!!
    Non !!!
    désolé mais je debute.

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    le formulaire correspond au contenue de la table donc quelque que soit la structure de mes tables il faut bien les modifiés si je modifie le formulaire !!!
    Ce n'est pas le formulaire qui provoque la modification d'une table, mais le contraire.
    Rien ne t'empêche de générer en php la partie du formulaire concernant les checkbox, ce qui fait que l'ajout d'un accessoire sera immédiatement répercuté sur le formulaire.

    PS - en gras les fôtes d'ortaugraffe

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Désolé pour les fautes !!!

    bon je comprend toujours rien ,

    1/
    formulaire insertion d'annonce permet d'inseré marques modeles et options ,la table annonce qui va recevoir les infos , marque , modele
    et les options sont defini par un 0 ou 1 selon que la checkbox et cocher ou pas ,0 pour cette auto na pas cette option 1 pour l'inverse .


    2/
    formulaire de recherche quasi identique au formulaire pour passer les annonces et la ma requete aura pour but de presenter toutes les auto du modele 407 de la marque peugeot dont les options demander on pour valeurs 1 .

    dans mon exemple de fonctionnement je suis bien obligé d'avoir la liste des options (checkbox ) dans ma table annonce de facon a sortir le resultat le plus precis possible demander par le formulaire de recherche ?

    excuse moi jeca je ne vois pas comment faire autrement ?
    peut-tu m'expliquer pas a pas comment se presenter ton fonctionnement
    et en quoi il est plus judicieux !!
    Merci

  13. #13
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Dans ta table de voitures :
    1 Renault Clio 2004 => La voiture a pour id #1

    Dans ta table options :
    1 Clim manu => L'option clim manu a pour id #1
    2 FC => L'option FC a pour id #2
    3 VE => L'option VE a pour id #3

    Et dans ta table qui fait le lien
    1 1 => La voiture #1 a l'option #1
    1 2 => La voiture #1 a l'option #2
    1 3 => La voiture #1 a l'option #3

    Et après il faut jouer avec des jointures pour faire les liens.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM voiture, option, table_lien WHERE voiture.id = table_lien.id_voiture AND table_lien.id_option = option.id
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Dans ta table de voitures :
    1 Renault Clio 2004 => La voiture a pour id #1
    l'id1 qui correspond a renault clio 2004 c'est l'id crée par auto incrément lors de l'insertion dans la table voiture qui a
    4 champs id marque modele année ?


    Dans ta table options :
    1 Clim manu => L'option clim manu a pour id #1
    2 FC => L'option FC a pour id #2
    3 VE => L'option VE a pour id #3
    c'est valeurs qui ont pour id 1,2,3 sont des id crées par auto increment
    lors de l'insertion de l'annonce ou c'est moi qui les entrées a la mano ?


    Et dans ta table qui fait le lien
    1 1 => La voiture #1 a l'option #1
    1 2 => La voiture #1 a l'option #2
    1 3 => La voiture #1 a l'option #3

    en fait j'ai du mal a comprendre parceque je visualise pas tous le fonctionnement en locurence le fonctionnement de mes requetes .


    explique moi le en francais
    dans la table voiture tu as 4 champs id marque modele année

    dans la table options tu as xx champs qui sont tutu pupu etc.....
    et les lignes vont se crée par rapport au option que l'annonceur aura cochez

    etc..


    quand ton client demandera renault clio 2004 avec
    clim et 4 roues motrice

    sa fera selectionne les id dans la table voiture qui sont egale a renault clio 2004 , puis ..............................

  15. #15
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Dans ta table de voitures :
    l'id1 qui correspond a renault clio 2004 c'est l'id crée par auto incrément lors de l'insertion dans la table voiture qui a
    4 champs id marque modele année ?
    Oui

    Dans ta table options :
    1 Clim manu => L'option clim manu a pour id #1
    2 FC => L'option FC a pour id #2
    3 VE => L'option VE a pour id #3
    c'est valeurs qui ont pour id 1,2,3 sont des id crées par auto increment?
    Oui

    explique moi le en francais
    dans la table voiture tu as 4 champs id marque modele année
    Oui

    dans la table options tu as xx champs qui sont tutu pupu etc.....
    Non. Juste deux champs, un id et un nom, c'est tout.


    Exemple de requêtes : toutes les Renault qui ont la clim.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM voiture, option, table_lien WHERE voiture.id = table_lien.id_voiture AND table_lien.id_option = option.id AND voiture.marque='Renault' AND option.nom='Clim'
    Sachant que ce que je te montre pour les options (les mettre dans une table) peut très bien s'appliquer aux marques ou aux modèles des bagnoles (une table marque et dans ta table voiture tu stockes juste l'id de la marque).

    J'ai l'impression que tu n'es pas à l'aise pour manipuler les BDD, mais si tu arrives à comprendre ce que je t'expliques tu seras vraiment gagnant.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Bon merci pour ta patience maintenant j'ai besoin de faire le tour du fonctionnement pour bien le comprendre ,

    formulaire d'insertion ( les données ) :

    mercedes value="10"
    modele value ="15"
    année value="2004"

    clim value="200"
    ordi de bord="280"

    les choses s'insere comme sa dans la table voiture :

    Id=1
    id_marque=10
    id_modele=15
    id_année=2004


    les choses s'insere comme sa dans la table options :

    Id id_option
    1 200
    2 280


    la 3° table qu'on va appeler la table annonce :

    je ne vois pas comment les choses s'ecrivent dedans ,
    comment elle doit etre structuré , comment elle fonctionne

    id d'increment , id de table_voiture ,id_option ; !!!!????

  17. #17
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oui c'est ça, mettons tu as une bagnole avec comme id 3, elle a comme options la clim (disons id 5), les VE (id 7) et les JA (14).

    Dans ta table lien, tu auras trois lignes pour cette voiture :
    3 5
    3 7
    et 3 14

    C'est inutile d'ajouter un champ auto-increment à mon avis.

    Et après avec le genre de requête que je t'ai montré tu récupères tout ce que tu veux. Et là vive le gain de place et la souplesse
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    alors ma requete d'insertion d'annonce ressemble a

    marque modele année



    insert into table_voiture
    id='' marque='$marque' modele='$modele' année='$annee'


    insert into table_option
    ( je doit insersé uniquement les options declarer par la coche de la checkbox comment ma requete peut faire pour inseré uniquement celle qui on ete cocher ?

  19. #19
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par nebil
    insert into table_voiture id='' marque='$marque' modele='$modele' année='$annee'
    Tu inserts comme ca toi ?
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    avec mon ordinateur comme sa , sa marche pas non plus , comme chez toi ,

    la question ne porte pas sur la requete mais un principe de fonctionnement general
    c'est pour dire marque modele année sont inseré dans la table voiture ,et comment on insere les options puisqu'il ne doivent figuré dans la table option uniquement celle .qui on ete cochez , comment ma requete est construite pour inseré celle concerné ??

Discussions similaires

  1. [PHP 5.4] Optimisation des traitements (SQL)
    Par qltmi dans le forum Langage
    Réponses: 1
    Dernier message: 06/04/2013, 11h59
  2. [C++/VB.Net]Optimiser des traitements lourds
    Par NiamorH dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/05/2006, 10h03

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