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 :

doublons requête my sql et tableau php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 1
    Par défaut doublons requête my sql et tableau php
    Bonjour à tous,
    Le titre n'est peut être pas très parlant mais je n'ai pas trouvé de moyens plus court pour résumer.
    Voila j'ai une requête sql qui est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT QUESTION.Question,QUESTION.ID_question, SUB_CATEGORIE_QUESTION.ID_sub_categorie, ANSWER.answer 
    FROM QUESTION 
    INNER JOIN SUB_CATEGORIE_QUESTION ON QUESTION.ID_question = SUB_CATEGORIE_QUESTION.ID_question 
    AND SUB_CATEGORIE_QUESTION.ID_sub_categorie = 1021
    INNER JOIN QUESTION_ANSWER ON QUESTION_ANSWER.ID_question = QUESTION.ID_question 
    INNER JOIN ANSWER ON QUESTION_ANSWER.id_answer = ANSWER.id_answer
    et qui me retourne le résultat que j'attend, c'est à dire :
    Nom : Capture.PNG
Affichages : 186
Taille : 11,1 Ko

    mon problème est le suivant, je souhaite à partir de ces résultats créer un formulaire qui contiendra par exemple un champ select qui se nomme Delivery avec les options YES et NO, un champ text Pieces… et un champ select 'Car' qui contiendra les valeur toto, tata, tutu.
    pour ce faire je procède de la façon suivante :

    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
    $wish_details = $wpdb->get_results("SELECT wish, details FROM SUB_CATEGORIE_WISH_DETAILS WHERE ID_sub_categorie=".$_GET['sub_cat']." AND translate = '$language'");
                        $questions = $wpdb->get_results("SELECT QUESTION.Question,QUESTION.ID_question, SUB_CATEGORIE_QUESTION.ID_sub_categorie, ANSWER.answer
                                                        FROM QUESTION
                                                        INNER JOIN SUB_CATEGORIE_QUESTION ON QUESTION.ID_question = SUB_CATEGORIE_QUESTION.ID_question
                                                        AND SUB_CATEGORIE_QUESTION.ID_sub_categorie = $id_sub_cat
                                                        INNER JOIN QUESTION_ANSWER ON QUESTION_ANSWER.ID_question = QUESTION.ID_question
                                                        INNER JOIN ANSWER ON QUESTION_ANSWER.id_answer = ANSWER.id_answer");
     
                        foreach ($wish_details as $datum) {
                            $wish = $datum->wish;
                            $details = $datum->details;
     
                        }
     
     
                            if(isset($_GET['find_options']) == "Find"){
     
                                ?>
                                <form id="request" name="request" method="post">
                                    <tr class="row-wish">
                                        <th scope="row">
                                            <label for="wish"><?php echo $wish." :"?></label>
                                        </th>
                                        <td>
                                            <textarea name="Activity_Description" id="Activity_Description" class="regular-text"
                                                      placeholder="<?php _e('Enter a description of your wish') ?>"></textarea>
                                        </td>
                                    </tr>
                                    <tr class="row-wish">
                                        <th scope="row">
                                            <label for="wish"><?php echo $details." :"?></label>
                                        </th>
                                        <td>
                                            <textarea name="Activity_Description" id="Activity_Description" class="regular-text"
                                                      placeholder="<?php _e('Give more details') ?>"></textarea>
                                        </td>
                                    </tr>
                                    <?php
                                    foreach ($questions as $item) {
                                        $question_name = $item->Question;
                                        $question_id = $item->ID_question;
                                        $answer = $item->answer;
     
                                        if($answer == "YES/NO"){
                                            ?>
                                            <label><?php echo $question_name ?></label>
                                            <select name="answer_yes/no" id="answer_yes/no">
                                                <option value="YES">YES</option>
                                                <option value="NO">NO</option>
                                            </select>
                                            <?php
                                        }
                                        else if($answer == "TEXT"){
                                            ?>
                                            <label><?php echo $question_name ?></label>
                                            <input type="text" name="text">
                                            <?php
                                        }
                                        else if($answer == "NUMBER"){
                                            ?>
                                            <label><?php echo $question_name ?></label>
                                            <input type="number" name="number">
                                            <?php
                                        }
                                        else if($answer == "DATE"){
                                            ?>
                                            <label><?php echo $question_name ?></label>
                                            <input type="date" name="date">
                                            <?php
                                        }
                                        else{
                                            ?>
                                            <label><?php echo $question_name ?></label>
                                            <select name="select_content" id="select_content/no">
                                                <option value="<?php echo $answer ?>"><?php echo $answer ?></option>
     
                                            </select>
                                            <?php
                                        }
     
                                    }
    le problème est le suivant, ca me génére 3 fois un champs car avec toto, tata et tutu dedans, je sais que c'est normal, ca ne peut pas fonctionner comme ca, mais je ne trouve pas comment faire pour avoir un seul champ car avec les 3 informations dans le select.
    Nom : Capture2.PNG
Affichages : 176
Taille : 23,3 Ko

    Si quelqu'un a une solution ou une piste ca m'aiderais énormément!
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 696
    Par défaut
    pour faire un regroupement par question, vous pouvez faire cela :
    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
     
    $triQuestions = [];
     
    foreach ($questions as $q) {
     
    	if (!isset($triQuestions[$q->ID_question])) {
     
    		$triQuestions[$q->ID_question] = $q;
     
    	} elseif (!is_array($triQuestions[$q->ID_question])) {
     
    		$triQuestions[$q->ID_question] = array_merge(
    			  [$triQuestions[$q->ID_question]]
    			, [$q]
    		);
     
    	} else {
     
    		$triQuestions[$q->ID_question] = array_merge(
    			  $triQuestions[$q->ID_question]
    			, [$q]
    		);
     
    	}
     
    }
    ensuite pour créer le code HTML, vous parcourez $triQuestions et vous tester si l'élément est un tableau PHP.

Discussions similaires

  1. Contenu table SQL dans tableau PHP
    Par Surinox dans le forum Langage
    Réponses: 2
    Dernier message: 04/03/2017, 11h09
  2. [MySQL] Supression de données sql via tableau php
    Par Taylor08 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 13/06/2014, 10h34
  3. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  4. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34
  5. [Requête]Affichage d'un tableau à partir de 2 tables SQL
    Par sp4ever dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/10/2005, 11h32

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