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 :

Formulaire et tableau [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut Formulaire et tableau
    Bonjour à tous et toutes,

    Désolé si ce sujet a déjà été traité mais je ne l'ai pas trouvé!


    J'ai créé un formulaire d'options pour un produit qui permet au visiteur de sélectionner les options qui l'intéressent. Jusque là tout va bien!

    Ma façon de faire est la suivante au travers de différentes boucles (peut-être que je m'y prend mal):

    1- Je vais chercher les options attachées au produits
    2- Je vais chercher dans la base options l'ID et le nom de l'option
    3- Je vais chercher dans la base produits_options les valeurs correspondantes aux options du produits

    Mon problème est le suivant:
    1- Je n'arrive pas à incrémenter un tableau avec le "<select name='option[]'>"
    2- Je n'arrive pas, évidemment, à récupérer les variables de ce tableau.

    Si vous aviez une idée à me proposer, je suis preneur.

    Merci d'avance.

    Je joins le code concerné:


    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
    $reqopttxt = "SELECT * FROM cadd_produits_options WHERE optval_produit_id = '".$prod['id']."' ";
    $reqoptsql = mysql_query($reqopttxt) OR Die ('Erreur: ' . __LINE__ . '.<p>' . MYSQL_ERROR());
     
    if (mysql_num_rows($reqoptsql) > 0) {
    ?><br /><font class="titre_produit">Options possibles pour ce produit :</font><br />
    <?php
    $i = 1;
    while ($ref = mysql_fetch_array($reqoptsql)) {
     
    $reqtxt1 = "SELECT option_id, nom FROM cadd_options WHERE option_id = '".$ref['optval_option_id']."' AND option_id > '$boucle' ORDER BY ordre_aff ASC ";
    $reqsql1 = mysql_query($reqtxt1);
    while ($opt = mysql_fetch_array($reqsql1)) {
    $boucle = $ref['optval_option_id']; // Evitez d'avoir le même nom qui se répète en controlant le numéro d'ID
     
    print ("<table width='100%' cellpadding='0' cellspacing='0' border='0' >\n");
    print ("<tr><td class='normal' width='20%'>".$i." - ".$opt['nom']."</td>\n");
    print ("<td class='normal'>\n");
    print ("<select class='form' name='options[]' >\n");
     
    $reqsql2= mysql_query("SELECT * FROM cadd_options_valeurs WHERE option_id = '".$opt['option_id']."' ORDER BY ordre_aff ASC ");
    while ($sopt = mysql_fetch_array($reqsql2)) {
    $reqsql3= mysql_query("SELECT optval_id, optval_produit_id, optval_option_id, optval_soption_id, optval_surplus FROM cadd_produits_options WHERE optval_soption_id = '".$sopt['soption_id']."' AND optval_valide = '1' ");
     
    while ($soptval = mysql_fetch_array($reqsql3)) { ?>
    <option class="formulaire1" value="<?=$sopt['valeur_option']?>||<?=$soptval['optval_surplus'];?>"><?=$sopt['valeur_option']?> (<?=$soptval['optval_surplus']?>)</option>
    <?php
    }
    }
    ?>
    </select>
    </td>
    </tr>
    </table><?php
    }
    $i++;
    }
    }

  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
    Tu pourrais croiser tes deux requetes.

    Si j'ai bien compris l'organisation de ta base, ca donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT optval_id, optval_produit_id, optval_option_id, optval_soption_id, optval_surplus 
    FROM cadd_produits_options JOIN cadd_options_valeurs ON soption_id = optval_soption_id 
    WHERE option_id = '.$opt['option_id'].'
    AND optval_valide = 1
    ORDER BY ordre_aff ASC
    Sinon un <select> simple ne renvoit evidemment qu'un seul couple name/value, pourquoi veux-tu faire un tableau ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut
    merci d'avoir répondu

    Parce que le nombre d'options peut-être aléatoire suivant le produit.
    En fait je veux éviter le style $option1,$option2,$option3 etc...

    Qui plus est, chaque valeur est double:
    1- le libellé de l'option à enregistrer
    2- le surcout de cette option à enregistrer

    Merci

  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
    A ce moment la utilise un index pertinent et qui change a chaque tour de boucle genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<select class="form" name="options[' . $ref['optval_option_id'] . ']"' >' ,"\n";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut
    merci, je vais essayer ça

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

Discussions similaires

  1. Formulaire et tableau
    Par malkie dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2007, 22h04
  2. problème d'organisation:formulaire et tableau dans le même frame
    Par info_plus dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/07/2007, 10h13
  3. [Formulaire]:Verrouillage Tableau croisé dynamique
    Par nicou50 dans le forum Access
    Réponses: 3
    Dernier message: 09/09/2006, 16h57
  4. [Formulaire] Récupérer tableau de champs input
    Par dam_moreyllo dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 14/06/2006, 10h49
  5. PB controle formulaire avec tableau à double entrées
    Par Poutchou dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 23/03/2006, 14h37

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