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 :

faire un quizz en utilisant php et mysql


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut faire un quizz en utilisant php et mysql
    Bonjour à tous alors voila je suis coince dans un projet en développement. Je dois crée un site de Quizz en ligne avec une identification connexion inscription choix d'un questionnaire afficher les scores les dates auquel ils ont passées les tests une partie prof dans lequel on peut ajouter des questions et des questionnaire assigne des question a un questionnaire .j=!j'ai commencer cette année le développement web mais voila je m'en sors pas trop .
    Mes questions sont les suivantes :
    quelles sont les requêtes sql pour afficher les questions du questionnaire choisis ainsi que les réponses ?
    comment je puis stocker toutes les réponses du Quizz ?
    comment comptabiliser les points ?
    comment afficher les réponses au Quizz et les compares au bonnes réponses ?
    Voila en espérant que quelqu'un puisse m'aider pour les quelques point cités au dessus Bonne journée à vous .

  2. #2
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    quelles sont les requêtes sql pour afficher les questions du questionnaire choisis ainsi que les réponses ?
    Des requêtes SELECT

    comment je puis stocker toutes les réponses du Quizz ?
    Avec des requêtes INSERT

    comment comptabiliser les points ?
    On fait une somme

    comment afficher les réponses au Quizz et les compares au bonnes réponses ?
    Avec une page HTML


    Si tu penses qu'on va écrire le projet à ta place, tu fais une erreur.
    Si tu cherches à sous-traiter le projet, tu peux me contacter en MP.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Par défaut Un script qcm - questions ouvertes et questions fermées

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Alors je pense qu'il a eu quiproquo je ne vous demande pas de faire mon projet ni que vous soyez condescendant à mon égards bande de zoulette hein j'ai déjà bûcher sur mon projet les point que j'ai mentionner plus haut sont les point ou je ne trouve pas de solutions je sais écrire des requêtes sql merci celle que j'utilises ne fonctionne pas il est la le soucis.
    Vraiment matures comme comportements venant certainement de trentenaire ou quadragénaire faudrait redescendre sur terre ...

  5. #5
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Citation Envoyé par neophyte2 Voir le message
    Alors je pense qu'il a eu quiproquo je ne vous demande pas de faire mon projet ni que vous soyez condescendant à mon égards bande de zoulette hein j'ai déjà bûcher sur mon projet les point que j'ai mentionner plus haut sont les point ou je ne trouve pas de solutions je sais écrire des requêtes sql merci celle que j'utilises ne fonctionne pas il est la le soucis.
    Vraiment matures comme comportements venant certainement de trentenaire ou quadragénaire faudrait redescendre sur terre ...
    Sans code ou extrait de code, sans structure de base de données, sans requête que tu sais écrire, comment veux-tu qu'on te réponde sans condescendance ?

    C'est qui la zoulette ? :-)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Citation Envoyé par ma5t3r Voir le message
    Sans code ou extrait de code, sans structure de base de données, sans requête que tu sais écrire, comment veux-tu qu'on te réponde sans condescendance ?

    C'est qui la zoulette ? :-)
    Peut être fallait-il me l'indiquer normalement et non en me prenant pour un debilos ...
    vous voulez une question précise en voila une voici mon code mais il m'indique une erreur dans la syntaxe de la requête sauf que j'ai tester la requête directement dans la base de données(phpmyadmin) et elle fonctionne
    auriez vous l’amabilité de m'indiquer ou se trouve mon erreur et une piste pour la corriger :


    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
        div {
      background-color: lightgrey;
      width: 50px;
      border: 1px solid black;
      padding: 0px;
      margin: 20px;
    }
    </style>
    </head>
    <body>
    <?php
     include "cnx.php";
     $erreur = 0;
     
     
         if(!empty($_POST["question"]) ){
     
             $sql3=$cnx->prepare("Insert into question (libelleQuestion,type,nbReponse,nbBonneReponse) values(".$_POST["question"].",".$_POST['type'].",".$_POST['nbreponse'].",".$_POST["bonnereponse"].")");
             if($sql3->execute())
     
             {
                 echo"<script><alert>reussi</alert></script>";
                 // header('location:<a href="http://localhost/ingetis/INGETIS/Projet%20WEB/index.php&#39;);" target="_blank">http://localhost/ingetis/INGETIS/Pro...dex.php');</a>
                 die;
     
             }
             else{
                echo"<script><alert>rater</alert></script>";
             };
     
      };
     
        echo"<form action='' id='form' method='post'>";
           echo  "<input type='text' value='' name='question'>"; 
           echo "<br>";
         echo   "<p>type</p>"; 
     
    echo"<label class='radio-inline' width='200' height='200' style='border:1px solid'>";
       echo"<input type='radio'name='type' id='type' value='0' >simple";
      echo" </label>"; 
    echo"<label class='radio-inline' width='200' height='200' style='border:1px solid'>";
       echo"<input type='radio' id='type' name='type' value='1'>multiple </label>";
      echo" <br>";
       echo"<p>nombre de reponse</p>";
       echo"<select name='nbreponse' class='custom-select custom-select-lg mb-3' id='sel' >";
     
       echo"<option selected name='nbreponse' value='1'>1</option>";
        echo"<option name='nbreponse' value='2'>2</option>";
        echo"<option name='nbreponse' value='3'>3</option>";
       echo" <option name='nbreponse' value='4'>4</option>";
        echo"<option name='nbreponse' value='5'>5</option>";
    echo "</select>";
       echo"<br>";
     
        echo"<div>Reponses</div>";
     
          echo"<table id='target'></table>";
     
     
          echo"<input type ='submit' name='btnInserer' value='valider'>";
      echo" </form>";
        ?>
        <script>
            function getRadioVal(form, name) {
        var val;
        // get list of radio buttons with specified name
        var radios = form.elements[name];
     
        // loop through list of radio buttons
        for (var i=0, len=radios.length; i<len; i++) {
            if ( radios[i].checked ) { // radio checked?
                val = radios[i].value; // if so, hold its value in val
                break; // and break out of for loop
            }
        }
        return val; // return value of checked radio or undefined if none checked
    }
            document.getElementById('sel').addEventListener('click',()=> { document.getElementById('target').innerHTML="";
             for  (let index = 0; index <  document.getElementById('sel').value; index++) {
                if(getRadioVal(document.getElementById('form'),'type')==0)
                {
                    document.getElementById('target').innerHTML+='<tr><th><input type="text" name="reponse"></th> <th> <input type="radio" name="bonnereponse" >  </th></tr>'
                }
                else{
                document.getElementById('target').innerHTML+='<tr><th><input type="text" name="reponse"></th> <th> <input type="checkbox" name="bonnereponse" >  </th></tr>'
                }
     
            }})
     
        </script>
    </body>
    </html>

  7. #7
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Salut,
    Il faut utiliser les balises pour présenter ton code, sans ça, c'est illisible.

    Quelle est l'erreur affichée ?

  8. #8
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Rappel avec ton code légèrement modifié ;-)

    - Quelle est la structure de ta table question ?
    - A quoi te sert le script présent dans la page ? Je n'en vois pas l’intérêt, surtout sur l'événement click du select. Fais fonctionner ton truc et après tu ajouteras du JS.
    - Pourquoi mettre des classes CSS sur tes éléments et ajouter du style online ? Ce n'est pas cohérent.
    - Pourquoi <HTML lang="en"> ?
    - Pourquoi fire un execute sur une requête prepare qui n'est pas prepare ? Je ne sais pas si tu sais ce que tu fais.
    - Que contient le fichier cnx.php ?

    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
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div {
                background-color: lightgrey;
                width: 50px;
                border: 1px solid black;
                padding: 0;
                margin: 20px;
            }
        </style>
    </head>
    <body>
    <?php
    require_once "/cnx.php";
    $erreur = 0;
    if(isset($_POST["btnInserer"]) ):
        if(empty($_POST['type']) || empty($_POST['question'])):
            die('Tous les champs doivent être remplis');
        endif;
        $sql = "Insert into question (libelleQuestion, type, nbReponse, nbBonneReponse) values(:libelleQuestion, :type, :nbReponse)";
        $db = $cnx->prepare($sql);
        $db->bindValue(':libelleQuestion', $_POST["question"]);
        $db->bindValue(':type', $_POST["type"]);
        $db->bindValue(':nbReponse', $_POST['nbreponse']);
        $db->execute();
     
        //ici, faire un select des questions déjà enregistrées dans la base
        //afin de les afficher dans ta page
     
    endif;
    ?>
    <form action="" id="form" method="POST">
        <label for="question">Question</label>
        <input type="text" name="question" id="question">
        <br />
        <p>Type</p>
        <label class="radio-inline"><input type="radio" id="simple" name="type" value="0" >Simple</label>
        <label class="radio-inline"><input type="radio" id="multiple" name="type" value="1">Multiple</label>
        <br>
        <label for="sel">nombre de reponse</label>
        <select name="nbreponse" class="custom-select custom-select-lg mb-3" id="sel" >
            <option selected name="nbreponse" value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        <br />
        <div>Reponses</div>
        <table id="target"></table>
        <input type ="submit" name="btnInserer" value="valider">
    </form>
     
    </body>
    </html>

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 186
    Par défaut
    Peut être fallait-il me l'indiquer normalement et non en me prenant pour un debilos
    Personne de te prend pour un "débilos", mais on ne peut répondre à des questions génériques que par des réponses bateaux.
    Extrait des règles :
    Quand vous posez une question, soyez aussi précis que possible : quel système et/ou quel outil avez-vous, quelle version, quelle édition, etc. ? Que souhaitez-vous faire au juste ? Si votre question n'est pas suffisamment précise, personne ne pourra vous aider.
    Lorsque c'est possible, postez votre code et le message d'erreur exact.
    ce n'est pas pour rien.

    Je ne fais pas de PHP, mais en regardant ton script (en diagonale), je vois que si ta requête abouti (c'est à dire l'écriture dans la base a été faite), ça affiche "réussi et change de page". Sauf si qq chose m'a échappé, aucune analyse n'a été faite sur la variable session question, mis à part son existence.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    le message d'erreur est celui-ci :
    
    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on)' at line 1 in C:\xampp\htdocs\INGETIS\INGETIS\Projet WEB\page6.php:28 Stack trace: #0 C:\xampp\htdocs\INGETIS\INGETIS\Projet WEB\page6.php(28): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\INGETIS\INGETIS\Projet WEB\page6.php on line 28
    la ligne 27-28:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $sql3=$cnx->prepare("Insert into question (libelleQuestion,type,nbReponse,nbBonneReponse) values(".$_POST["question"].",".$_POST['type'].",".$_POST['nbreponse'].",".$_POST["bonnereponse"].")");
             if($sql3->execute())

    mes balises sont dans mes echo comme j'utilise php c'est comme ça qu'on ma appris



    - Quelle est la structure de ta table question ?

    elle se compose de 5 colonnes
    idQuestion, libelleQuestion , type , nbReponse, nbBonneReponse


    - A quoi te sert le script présent dans la page ? Je n'en vois pas l’intérêt, surtout sur l'événement click du select. Fais fonctionner ton truc et après tu ajouteras du JS.

    La fonction est la car je dois d'abbord choisir un nombre de réponses avant de pouvoir les écrire et lorsque je le faisait sans laquestion ca me mettait une erreur car le nombre de question n'etait pas choisi au chargment de la page et je ne voulais pas cree une autre page identique juste pour faire ca du coup on m'a conseiller une fonction en JS plutot .

    - Pourquoi mettre des classes CSS sur tes éléments et ajouter du style online ? Ce n'est pas cohérent.

    c'est parce que j'utilise des lignes de codes que j'avais déjà écrites pour d'autre script et que le css je le ferrais a la fin une fois que mon code fonctionnera je ne pense que cela influe sur les requêtes ni les fonctions .

    - Pourquoi <HTML lang="en"> ?

    le raccourci html5 sur visual studio code fait ça je pense pas que la langue soit importante les balises classes etc sont en anglais de bases

    - Pourquoi faire un execute sur une requête prepare qui n'est pas prepare ? Je ne sais pas si tu sais ce que tu fais.

    je n'ai pas compris ma requête est préparée puis exécutée cf ligne 27/28

    - Que contient le fichier cnx.php ?

    le lien vers ma base de données

    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
    <?php
    //connexion a la base de données
    // dsn = Data Source Name = driver MYSQL
    $dsn='mysql:dbname=testqcm;host=localhost';
    //login
    $login='root';
    // Mot de passe
    $motDePasse='';
    // Connexion au serveur MySQL
    try{
        $cnx = new PDO($dsn, $login, $motDePasse,
                array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    }
    catch (PDOException $e){
    	die('Erreur : ' . $e->getMessage());
    }

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Citation Envoyé par ma5t3r Voir le message
    Rappel avec ton code légèrement modifié ;-)

    - Quelle est la structure de ta table question ?
    - A quoi te sert le script présent dans la page ? Je n'en vois pas l’intérêt, surtout sur l'événement click du select. Fais fonctionner ton truc et après tu ajouteras du JS.
    - Pourquoi mettre des classes CSS sur tes éléments et ajouter du style online ? Ce n'est pas cohérent.
    - Pourquoi <HTML lang="en"> ?
    - Pourquoi fire un execute sur une requête prepare qui n'est pas prepare ? Je ne sais pas si tu sais ce que tu fais.
    - Que contient le fichier cnx.php ?

    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
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div {
                background-color: lightgrey;
                width: 50px;
                border: 1px solid black;
                padding: 0;
                margin: 20px;
            }
        </style>
    </head>
    <body>
    <?php
    require_once "/cnx.php";
    $erreur = 0;
    if(isset($_POST["btnInserer"]) ):
        if(empty($_POST['type']) || empty($_POST['question'])):
            die('Tous les champs doivent être remplis');
        endif;
        $sql = "Insert into question (libelleQuestion, type, nbReponse, nbBonneReponse) values(:libelleQuestion, :type, :nbReponse)";
        $db = $cnx->prepare($sql);
        $db->bindValue(':libelleQuestion', $_POST["question"]);
        $db->bindValue(':type', $_POST["type"]);
        $db->bindValue(':nbReponse', $_POST['nbreponse']);
        $db->execute();
     
        //ici, faire un select des questions déjà enregistrées dans la base
        //afin de les afficher dans ta page
     
    endif;
    ?>
    <form action="" id="form" method="POST">
        <label for="question">Question</label>
        <input type="text" name="question" id="question">
        <br />
        <p>Type</p>
        <label class="radio-inline"><input type="radio" id="simple" name="type" value="0" >Simple</label>
        <label class="radio-inline"><input type="radio" id="multiple" name="type" value="1">Multiple</label>
        <br>
        <label for="sel">nombre de reponse</label>
        <select name="nbreponse" class="custom-select custom-select-lg mb-3" id="sel" >
            <option selected name="nbreponse" value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        <br />
        <div>Reponses</div>
        <table id="target"></table>
        <input type ="submit" name="btnInserer" value="valider">
    </form>
     
    </body>
    </html>
    La page ici me sert a crée des questions et ses réponsespk faire un select des questions deja existantes
    comme expliquer ma requetes seules fonctionne si je l'ecris directement dans ma base de données mais dans la page web

  12. #12
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Ce n'est pas l'erreur attendue par le code que je t'ai donné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     $sql = "Insert into question (libelleQuestion, type, nbReponse, nbBonneReponse) values(:libelleQuestion, :type, :nbReponse, :nbBonneReponse)";
        $db = $cnx->prepare($sql);
        $db->bindValue(':libelleQuestion', $_POST["question"]);
        $db->bindValue(':type', $_POST["type"]);
        $db->bindValue(':nbReponse', $_POST['nbreponse']);
        $db->bindValue(':nbBonneReponse', 'je ne sais pas où tu récupères cette valeur');
        $db->execute();
    Utilise le code que je t'ai donné.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Merci cela fonctionne j'ai du juste remplacer votre require_once "/cnx.php"; par un include et l'erreur est partie mais j'aimerais bien comprendre a quoi servent les bindvalue je n'ai pas souvenir de les avoir etudiés et je suppose que c'est grace à cela que ça fonctionne ?

    Et une autre question si je veux integrer un autre insert sur la meme page est ce que dans la deuxieme requete je dois aussi ecrire les bind value ?

  14. #14
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Merci cela fonctionne j'ai du juste remplacer votre require_once "/cnx.php"; par un include et l'erreur est partie
    Un include ou include_once ne génère pas d'erreur alors que require ou require_once oui, et c'est le but.

    a quoi servent les bindvalue
    La méthode PDO::bindValue permet d'associer une variable PHP à une requête SQL avant de l'exécuter
    Le système échappe les caractères et permet de minimiser l'injection SQL. "Toujours" faire des requêtes paramétrées.
    D'ailleurs, n'ayant pas d'information sur le type de données utilisé, j'ai omis le 3éme paramètre de bindValue qui permet de typer la variable.
    Un aperçu dans la bible : https://www.php.net/manual/fr/pdosta....bindvalue.php

    Et une autre question si je veux integrer un autre insert sur la meme page est ce que dans la deuxieme requete je dois aussi ecrire les bind value ?
    Oui, d'où l'avantage des variables que tu récupères dans le $_POST.

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 7
    Par défaut
    Merci pour les explications c'est un peu plus clair faut que je l’assimile maintenant
    dernière question je ne comprend pas ce que vous voulez dire ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db->bindValue(':nbBonneReponse', 'je ne sais pas où tu récupères cette valeur');
    la valeur est récupéré grâce au name non ? avec un checked ?

Discussions similaires

  1. [MySQL] Utilisation PHP et MYSQL
    Par martmanaman dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/08/2018, 10h21
  2. Livre d'or sur page html sans utiliser php et Mysql
    Par fartouk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 31/07/2011, 17h20
  3. Faire un upload sans utiliser le PHP
    Par JeanMarc_T2k dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 06/02/2008, 09h43
  4. [MySQL] Faire travailler php ou mysql ?
    Par sabotage dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/02/2008, 04h23
  5. [MySQL] Utiliser PHP et MySQL pour un site à fort traffic
    Par lexayo dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/12/2007, 17h40

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