Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 09h29   #1
Invité régulier
 
Inscription : janvier 2004
Messages : 70
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 70
Points : 6
Points : 6
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 :
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 :
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 :
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
micker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 12h58   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h16   #3
Invité régulier
 
Inscription : janvier 2004
Messages : 70
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 70
Points : 6
Points : 6
oui tout a fait dans notepad++
pour un debutant il faut quoi comme log ?
sinon voici ma correction
Code :
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 :
1
2
Warning: PDO::__construct() [pdo.--construct]: [2002] Une tentative de connexion a &#65533;chou&#65533; car le parti connect&#65533; n&#65533;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 &#65533;chou&#65533; car le parti connect&#65533; n&#65533;a pas r&#65533;pondu convenablement au-del&#65533; d&#65533;une certaine dur&#65533;e ou une connexion &#65533;tablie a &#65533;chou&#65533; car l&#65533;h&#65533;te de connexion n&#65533;a pas r&#65533;pondu.
qu'en penses tu ?
MErci
micker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h42   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Citation:
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é
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h57   #5
Invité régulier
 
Inscription : janvier 2004
Messages : 70
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 70
Points : 6
Points : 6
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 :
$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
micker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 15h56   #6
Invité régulier
 
Inscription : janvier 2004
Messages : 70
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 70
Points : 6
Points : 6
hello
j'ai trouver execute ou lieu de exec
Code :
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());
}
 
?>
micker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h27.


 
 
 
 
Partenaires

Hébergement Web