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

Langage PHP Discussion :

formulaire oui non pour envoie dans une bdd


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 49
    Points
    49
    Par défaut formulaire oui non pour envoie dans une bdd
    hello a tous
    voila je debute en prog et j'ai une mini-mini projet a faire
    c'est un quiz de oui-non ou je dois pouvoir avoir le pourcentage de oui à la fin
    j'ai une
    BDD SQL : seb
    TABLE : reponse
    2 champs : id (int/primaire/auto-incrementation)
    reponse (int) pour y envoyer des 1 pour les oui et 0 pour les nom

    j'ai créer des entrée pour tester ma page de resultat qui fonctionne
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Résultat</title>
    </head>
     
    <body>
    <div id="contenu">
    <div id="texte">
    <?php
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=seb', 'root', '', $pdo_options);
     
        $reponse = $bdd->query('SELECT AVG(reponse) AS moyen FROM reponse');
     
        while ($donnees = $reponse->fetch())
        {
            echo $donnees['moyen']*100;
    		echo '% ont répondus oui à la question 3<br />';
     
        }
     
        $reponse->closeCursor();
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    ?>
    </div>
    </div>
     
    </body>
    </html>
    Mon soucis viens du fait que je n'arrive pas a envoyer les resultats dans ma base de donnée.

    le formulaire
    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
    <?php ini_set( 'display_errors', 1) ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Question 3</title>
    </head>
     
    <body>
     
    <div id="contenu">
    <div id="texte">Pensez-vous que 67% des gens ont aimé l'exposition "Et le travail ?" au bbb</div>
    <div id="bouton">
    <form method="post" action="post-question3.php">
    <input name="reponse" type="submit" value="oui" /> 
    <input name="reponse" type="submit" value="non" />
    </form>  
     
     
    </body>
    </html>
    et le fichier de traitement post-question3.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
    <?php ini_set( 'display_errors', 1) ?>
    <?php
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=seb', 'root', '', $pdo_options);
    if($_POST['reponse']=="oui")
    {
        // On ajoute une entrée dans la table jeux_video
        $bdd->execute('INSERT INTO reponse(id, reponse) VALUES(\'\',\'1\')');
    	header('Location:question4.php');
    }
    else
    {
    $bdd->execute('INSERT INTO reponse(id, reponse) VALUES(\'\',\'0\')');
    header('Location:question4.php');
     
    }
    ?>
    la page post-question3.php reste blanche malgrès le <?php ini_set( 'display_errors', 1) ?>
    et rien dans la base de donnée ...
    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu ne fermes pas ton bloc try. Et tu ne mets pas non plus de catch au passage.
    J'en déduis que tu utilise Notepad++ ou un ersatz du même genre car Eclipse ou NetBeans t'auraient signalé l'erreur.

    Pense à indenter, ça t'aurait sauté aux yeux avec une indentation propre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 49
    Points
    49
    Par défaut
    oui tout a fait dans notepad++
    pour un debutant il faut quoi comme log ?
    sinon voici ma correction
    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
    <?php ini_set( 'display_errors', 1) ?>
    <?php
    try
    	{
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=seb', 'root', '', $pdo_options);
    		if($_POST['reponse']=="oui")
    			{
    			// On ajoute une entrée dans la table jeux_video
    			$bdd->execute('INSERT INTO reponse(id, reponse) VALUES(\'\',\'1\')');
    			header('Location:question4.php');
    			}
    		else
    			{
    			$bdd->execute('INSERT INTO reponse(id, reponse) VALUES(\'\',\'0\')');
    			header('Location:question4.php');
     
    			}
    	}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
    ?>
    mais il renvois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: PDO::__construct() [pdo.--construct]: [2002] Une tentative de connexion a �chou� car le parti connect� n�a pa (trying to connect via tcp://localhost:3306) in C:\Users\Utilisateur\site\server2go\htdocs\seb\post-question3.php on line 6
    Erreur : SQLSTATE[HY000] [2002] Une tentative de connexion a �chou� car le parti connect� n�a pas r�pondu convenablement au-del� d�une certaine dur�e ou une connexion �tablie a �chou� car l�h�te de connexion n�a pas r�pondu.
    qu'en penses tu ?
    MErci

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    pour un debutant il faut quoi comme log ?
    Comme log ou comme IDE tu voulais dire ?

    Je suis partisant d'Eclipse PDT pour ma part: coloration syntaxique, analyse du code en temps réel, debugger, refactoring, autocomplétion, y'a tout quoi tu veux. C'est un peu compliqué à prendre en main au départ mais une fois correctement maitrisé, c'est un énorme gain de productivité.
    Tu trouvera ça par là: http://www.eclipse.org/pdt/

    Pour ton erreur, vérifie que les identifiants de connection sont corrects, que la base de données existe et que le serveur MySQL est bien lancé

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 49
    Points
    49
    Par défaut
    hello
    alors j'ai reinstaller un wamp tout propre ca va deja mieux
    il me retourne l'erreur suivante
    Fatal error: Call to undefined method PDO::execute() in C:\wamp\www\seb\post-question3.php on line 10

    ce qui equivaut a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd->execute('INSERT INTO reponse(id, reponse) VALUES(\'\',\'1\')');
    c'est du a quoi ?
    l'idée c'est de créer une nouvelle entré dans la table reponse avec l'id incrementer et la valeur 1

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 49
    Points
    49
    Par défaut
    hello
    j'ai trouver execute ou lieu de exec
    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
    <?php ini_set( 'display_errors', 1) ?>
    <?php
    try
    	{
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost; dbname=seb', 'root', '', $pdo_options);
    		if($_POST['reponse']=="oui")
    			{
    			// On ajoute une entrée dans la table jeux_video
    			$bdd->exec('INSERT INTO reponse(reponse) VALUES(1)');
    			header('Location:question4.php');
    			}
    		else
    			{
    			$bdd->exec('INSERT INTO reponse(reponse) VALUES(0)');
    			header('Location:question4.php');
     
    			}
    	}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
    ?>

Discussions similaires

  1. [MySQL] PHP script pour recherche dans une bdd mysql
    Par stone144 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/12/2010, 13h06
  2. Formulaire pour insertion dans une bdd
    Par cobolons dans le forum Langage
    Réponses: 6
    Dernier message: 17/04/2009, 19h59
  3. [HTML 4.0] Formulaire pour insertion dans une bdd
    Par cobolons dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/04/2009, 09h53
  4. Réponses: 0
    Dernier message: 11/08/2008, 11h13
  5. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 17h26

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