Votre question

Création d'un sondage avec de base de donnée

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
22 Avril 2010 21:28:40

Salut à tous!
Je programme actuellement un petit site web et j'utilise un peu de php pour le rendre plus dynamique.
Le problème c'est que j'aimerais réaliser un petit sondage mais il ne fonctionne pas.
Je passe des heures à modifier mon code et il ne fonction jamais.
Si quelqu'un pourrait m'aider ca serait vraiment simpa =)

Voici mon code php:


  1. <?php
  2. $sql_serveur = "localhost";
  3. $sql_base = "base";
  4. $sql_login = "root";
  5. $sql_password = "";
  6.  
  7. @mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
  8. "Connection interrompue");
  9. @mysql_select_db($sql_base);
  10.  
  11. $ip = $_SERVER['REMOTE_ADDR'];
  12. $unix = time();
  13. $temps = time()-3600;
  14.  
  15. $verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
  16. $voter = 'mysql_query($verifier,$connection)';
  17.  
  18. if(@mysql_num_rows($voter)!='0'){
  19.  
  20. echo
  21. '<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
  22. ' d\'avoir voté !</strong></p>';
  23. $sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
  24.  
  25. $result = 'mysql_query($sql , $connection)';
  26.  
  27. while($resultat = 'mysql_fetch_array($result)') {
  28. $cadre[] = $resultat['reponse'];
  29.  
  30. }
  31.  
  32. $totalvote= 'count($cadre)';
  33.  
  34. $totalreponse = 'array_count_values($cadre)';
  35.  
  36. $reponse1 = 'bcdiv($totalreponse[1]*100, $totalvote, 2)';
  37. $reponse2 = 'bcdiv($totalreponse[2]*100, $totalvote, 2)';
  38. $reponse3 = 'bcdiv($totalreponse[3]*100, $totalvote, 2)';
  39. $reponse4 = 'bcdiv($totalreponse[4]*100, $totalvote, 2)';
  40.  
  41.  
  42. function VerifText($text,$valeur,$reponse,$totaldesreponse){
  43. if ($text < '1'){
  44.  
  45. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  46. '% <strong>0</strong> vote.<br />';
  47. }
  48. if ($text == '1'){
  49.  
  50. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  51. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  52. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> vote.<br />';
  53. }
  54. if ($text > '1'){
  55.  
  56. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  57. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  58. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> votes.<br />';
  59. }
  60. return $text1;
  61. }
  62.  
  63. echo VerifText($totalreponse[1],'valeur 1',$reponse1,$totalreponse[1]).
  64. VerifText($totalreponse[2],'valeur 2',$reponse2,$totalreponse[2]). VerifText(
  65. $totalreponse[3],'valeur 3',$reponse3,$totalreponse[3]).VerifText($totalreponse[
  66. 4],'valeur 4',$reponse4,$totalreponse[4]);
  67. echo '<strong> Total votes : </strong>'.$totalvote.'<br /><br /><br />';
  68.  
  69. }else{
  70.  
  71. echo 'Quelle Valeur souhaité vous ? <br /><br />';
  72. echo
  73. '<form method="POST" action="index.php?vote=ok"><div><input class="zonetext"' .
  74. ' type="radio" value="1" name="choix" /> - Valeur 1<br /><input class="zonetex' .
  75. 't" type="radio" value="2" name="choix" /> - Valeur 2<br /><input class="zonet' .
  76. 'ext" type="radio" value="3" name="choix" /> - Valeur 3<br /><input class="zon' .
  77. 'etext" type="radio" value="4" name="choix" /> - Valeur 4<br /><input class="z' .
  78. 'onetext" type="submit" value=" Ok ! " /></div></form>';
  79.  
  80. }
  81.  
  82. if (isset($_GET['vote']) AND isset ($_POST['choix'])){
  83. if ($_GET['vote']= "ok" AND $_POST['choix']!=0){
  84. $enregistrer =
  85. "INSERT vote SET id='', titre='lieu_de_championat', reponse='$_POST[choix]'," .
  86. " ip='$ip', unix='$unix'";
  87. 'mysql_query ($enregistrer, $connection)';
  88. 'header("Location: index")';
  89. }}
  90.  
  91. ?>

Autres pages sur : craation sondage base donnae

a c 232 L Programmation
22 Avril 2010 23:38:42

c'est normal tous les ' ' autour de tes fonctions ? ca risque pas de marcher...
m
0
l
23 Avril 2010 22:20:09

Ben... lorsque je supprime les '' j'ai un message d'erreur...

Si vous connaissez un autre code php pour créer un petit sondage n'hésiter pas à me le communiquer svp.
Merci
m
0
l
Contenus similaires
a c 232 L Programmation
23 Avril 2010 23:26:51

fais voir ton code sans ' devant les fonctions, et ton message d'erreur
m
0
l
24 Avril 2010 09:29:55

Voi la pour mon code :

  1. <?php
  2. $sql_serveur = "localhost";
  3. $sql_base = "base";
  4. $sql_login = "root";
  5. $sql_password = "";
  6.  
  7. @mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
  8. "Connection interrompue");
  9. @mysql_select_db($sql_base);
  10.  
  11. $ip = $_SERVER['REMOTE_ADDR'];
  12. $unix = time();
  13. $temps = time()-3600;
  14.  
  15. $verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
  16. $voter = mysql_query($verifier,$connection);
  17.  
  18. if(@mysql_num_rows($voter)!='0'){
  19.  
  20. echo
  21. '<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
  22. ' d\'avoir voté !</strong></p>';
  23. $sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
  24.  
  25. $result = mysql_query($sql , $connection);
  26.  
  27. while($resultat = mysql_fetch_array($result)) {
  28. $cadre[] = $resultat['reponse'];
  29.  
  30. }
  31.  
  32. $totalvote= count($cadre);
  33.  
  34. $totalreponse = array_count_values($cadre);
  35.  
  36. $reponse1 = bcdiv($totalreponse[1]*100, $totalvote, 2);
  37. $reponse2 = bcdiv($totalreponse[2]*100, $totalvote, 2);
  38. $reponse3 = bcdiv($totalreponse[3]*100, $totalvote, 2);
  39. $reponse4 = bcdiv($totalreponse[4]*100, $totalvote, 2);
  40.  
  41.  
  42. function VerifText($text,$valeur,$reponse,$totaldesreponse){
  43. if ($text < '1'){
  44.  
  45. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  46. '% <strong>0</strong> vote.<br />';
  47. }
  48. if ($text == '1'){
  49.  
  50. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  51. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  52. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> vote.<br />';
  53. }
  54. if ($text > '1'){
  55.  
  56. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  57. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  58. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> votes.<br />';
  59. }
  60. return $text1;
  61. }
  62.  
  63. echo VerifText($totalreponse[1],'valeur 1',$reponse1,$totalreponse[1]).
  64. VerifText($totalreponse[2],'valeur 2',$reponse2,$totalreponse[2]). VerifText(
  65. $totalreponse[3],'valeur 3',$reponse3,$totalreponse[3]).VerifText($totalreponse[
  66. 4],'valeur 4',$reponse4,$totalreponse[4]);
  67. echo '<strong> Total votes : </strong>'.$totalvote.'<br /><br /><br />';
  68.  
  69. }else{
  70.  
  71. echo 'Quelle Valeur souhaité vous ? <br /><br />';
  72. echo
  73. '<form method="POST" action="index.php?vote=ok"><div><input class="zonetext"' .
  74. ' type="radio" value="1" name="choix" /> - Valeur 1<br /><input class="zonetex' .
  75. 't" type="radio" value="2" name="choix" /> - Valeur 2<br /><input class="zonet' .
  76. 'ext" type="radio" value="3" name="choix" /> - Valeur 3<br /><input class="zon' .
  77. 'etext" type="radio" value="4" name="choix" /> - Valeur 4<br /><input class="z' .
  78. 'onetext" type="submit" value=" Ok ! " /></div></form>';
  79.  
  80. }
  81.  
  82. if (isset($_GET['vote']) AND isset ($_POST['choix'])){
  83. if ($_GET['vote']= "ok" AND $_POST['choix']!=0){
  84. $enregistrer =
  85. "INSERT vote SET id='', titre='lieu_de_championat', reponse='$_POST[choix]'," .
  86. " ip='$ip', unix='$unix'";
  87. mysql_query ($enregistrer, $connection);
  88. header("Location: index");
  89. }}
  90.  
  91. ?>


et j'ai droit à des messages comme ceux ci :

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 132

Warning: Cannot modify header information - headers already sent by (output started at D:\instalation\wamp\wamp\www\allonepiece\index.php:15) in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 133

et d'autr du même genre.

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 61
m
0
l
a c 232 L Programmation
24 Avril 2010 10:16:12

Pour le 1er warning :
Un INSERT ne se fait pas avec INSERT / SET, mais INSERT INTO ... VALUES (...)
  1. $enregistrer = "INSERT vote SET id='', titre='lieu_de_championat', reponse='$_POST[choix]'," .
  2. " ip='$ip', unix='$unix'";

Exemple :
  1. $choix = $_POST['choix']
  2. $enregistrer = "INSERT INTO vote (titre, reponse, ip, unix) VALUES('lieu_de_championat', '$choix', '$ip', '$unix')";


Et il faut aussi vérifier les données qu'il y a dans choix afin que les données soient valides, parce que sinon on peut casser toute ta base de données.

Pour le 2ème warning, tu l'as parce que tu as le 1er warning.

Et le 3ème warning, je ne vois pas quelle est la ligne 61 dans ton cas, du coup difficile de te dire.
m
0
l
24 Avril 2010 21:35:40

voila je viens de changer ce que tu m'a dit mais ca ne fonctionne toujours pas j'ai encore des messages d'erreur.

Je pense que il n'enregistre pas les données dans la base de donnée parce que lorsque je vais dans phpmyadmin l'adresse ip, l'unix, ect... n'est pas enregistrer il n'y a rien.
revoici mon code (jte met toute la pge comme ca il n'y a pas d'erreur dans la numérotation des lignes):

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  5.  
  6. <head>
  7.  
  8. <link rel="stylesheet" type="text/css"title="all one-piece" href="mycss.css" />
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10.  
  11. <title>All One Piece</title>
  12.  
  13. </head>
  14.  
  15. <body>
  16.  
  17. <div id="all">
  18.  
  19. <?php include("entete.php"); ?>
  20.  
  21. <?php include("menu_gauche.php"); ?>
  22.  
  23. <?php include("menu_droite.php"); ?>
  24.  
  25. <div id="corps">
  26.  
  27.  
  28. <img src ="bienvenue.bmp"/>
  29.  
  30. <center><p>Ce site est consacré à l'univers des mangas, il s'adresse à tout public mais particulièrement
  31. aux fans du meillieur manga de tous les temps, j'ai nomé one piece,...</br></br>
  32. Vous y trouverez tout ce que vous shouaitez à travers les différentes rubriques ; Des images, des informations sur la série,
  33. les épisodes, l'actualité du manga, ...</br></br>
  34. Et n'hésitez pas à me contacter si vous avez des recommandations à me faire, ou des conseils à donner.</br></br>
  35.  
  36. Bonne visite!</p></center>
  37.  
  38. </br>
  39.  
  40. <center><img src ="acc.jpg" height="350px" width="520px"/></center>
  41.  
  42. </br></br>
  43.  
  44. <img src ="actu.bmp"/>
  45.  
  46. <?php
  47. $sql_serveur = "localhost";
  48. $sql_base = "base";
  49. $sql_login = "root";
  50. $sql_password = "";
  51.  
  52. @mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
  53. "Connection interrompue");
  54. @mysql_select_db($sql_base);
  55.  
  56. $ip = $_SERVER['REMOTE_ADDR'];
  57. $unix = time();
  58. $temps = time()-3600;
  59.  
  60. $verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
  61. $voter = mysql_query($verifier,$connection);
  62.  
  63. if(@mysql_num_rows($voter)!='0'){
  64.  
  65. echo
  66. '<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
  67. ' d\'avoir voté !</strong></p>';
  68. $sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
  69.  
  70. $result = mysql_query($sql , $connection);
  71.  
  72. while($resultat = mysql_fetch_array($result)) {
  73. $cadre[] = $resultat['reponse'];
  74.  
  75. }
  76.  
  77. $totalvote= count($cadre);
  78.  
  79. $totalreponse = array_count_values($cadre);
  80.  
  81. $reponse1 = bcdiv($totalreponse[1]*100, $totalvote, 2);
  82. $reponse2 = bcdiv($totalreponse[2]*100, $totalvote, 2);
  83. $reponse3 = bcdiv($totalreponse[3]*100, $totalvote, 2);
  84. $reponse4 = bcdiv($totalreponse[4]*100, $totalvote, 2);
  85.  
  86.  
  87. function VerifText($text,$valeur,$reponse,$totaldesreponse){
  88. if ($text < '1'){
  89.  
  90. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  91. '% <strong>0</strong> vote.<br />';
  92. }
  93. if ($text == '1'){
  94.  
  95. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  96. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  97. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> vote.<br />';
  98. }
  99. if ($text > '1'){
  100.  
  101. $text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
  102. '% <img src="barre.gif" alt="chargement impossible" height="5" width="'.
  103. $reponse.'" /> <strong>'.$totaldesreponse.'</strong> votes.<br />';
  104. }
  105. return $text1;
  106. }
  107.  
  108. echo VerifText($totalreponse[1],'valeur 1',$reponse1,$totalreponse[1]).
  109. VerifText($totalreponse[2],'valeur 2',$reponse2,$totalreponse[2]). VerifText(
  110. $totalreponse[3],'valeur 3',$reponse3,$totalreponse[3]).VerifText($totalreponse[
  111. 4],'valeur 4',$reponse4,$totalreponse[4]);
  112. echo '<strong> Total votes : </strong>'.$totalvote.'<br /><br /><br />';
  113.  
  114. }else{
  115.  
  116. echo 'Quelle Valeur souhaité vous ? <br /><br />';
  117. echo
  118. '<form method="POST" action="index.php?vote=ok"><div><input class="zonetext"' .
  119. ' type="radio" value="1" name="choix" /> - Valeur 1<br /><input class="zonetex' .
  120. 't" type="radio" value="2" name="choix" /> - Valeur 2<br /><input class="zonet' .
  121. 'ext" type="radio" value="3" name="choix" /> - Valeur 3<br /><input class="zon' .
  122. 'etext" type="radio" value="4" name="choix" /> - Valeur 4<br /><input class="z' .
  123. 'onetext" type="submit" value=" Ok ! " /></div></form>';
  124.  
  125. }
  126.  
  127. if (isset($_GET['vote']) AND isset ($_POST['choix'])){
  128. if ($_GET['vote']= "ok" AND $_POST['choix']!=0){
  129. $enregistrer = "INSERT INTO vote (titre, reponse, ip, unix) VALUES('lieu_de_championat', '$choix', '$ip', '$unix')";
  130. mysql_query ($enregistrer, $connection);
  131. header("Location: index");
  132. }}
  133.  
  134. ?>
  135.  
  136.  
  137.  
  138.  
  139. </div>
  140.  
  141. <?php include("pied_de_page.php"); ?>
  142.  
  143.  
  144.  
  145. </div>
  146.  
  147.  
  148. </body>
  149.  
  150.  
  151. </html>




et les messages d'erreur :

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 61

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at D:\instalation\wamp\wamp\www\allonepiece\index.php:15) in D:\instalation\wamp\wamp\www\allonepiece\index.php on line 130


merci pour ton aide
m
0
l
a c 232 L Programmation
24 Avril 2010 21:38:01

Supprime ton paramètre $connection à chaque fois que tu fais une requête mysql_query.
m
0
l
24 Avril 2010 21:43:51

ok je vais essayer
m
0
l
24 Avril 2010 21:53:46

Voila on avance...

Ca fonctionne ... à moité...

Lorsque je coche une valeur et que j'envoie, il me remet la page avec le questionnaire puis je recoche ma valeur et je réenvoie alors la il m'affiche les résulats mais.... problème.

Il ne compte pas mon vote ( il ne met pas le nombre de vote pour "valeur1", sa reste a 0) mais par contre pour le nombre de vote totale a chaque foi que j'actualise la page, il compte un vote en +.
m
0
l
24 Avril 2010 21:58:21

oups j'avais oublier le $choix = $_POST['choix'].

Maintenent ca marche sauf qu'il faut encore cocher 2 foi de suite sa valeur et que a chaque foi que j'actualise la page il compte un vote en +
m
0
l
24 Avril 2010 22:54:01

Ca fonctionne sauf que il y un dernier problème...

Lorsque je vote peut imoprte que je vote valeur1 ou valeur 4 il compte toujours comme si j'avais voter valeur 1...

voicimon code :

<?php
$sql_serveur = "localhost";
$sql_base = "base";
$sql_login = "root";
$sql_password = "";

@mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
"Connection interrompue");
@mysql_select_db($sql_base);

$ip = $_SERVER['REMOTE_ADDR'];
$unix = time();
$temps = time()-10;

if (isset($_GET['vote']) AND isset ($_POST['choix'])){
if ($_GET['vote']= "ok" AND $choix = $_POST['choix']!=0){

$enregistrer = "INSERT INTO vote (titre, reponse, ip, unix) VALUES('lieu_de_championat', '$choix', '$ip', '$unix')";
mysql_query ($enregistrer);

}}

$verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
$voter = mysql_query($verifier);


if(@mysql_num_rows($voter)!='0'){

echo
'<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
' d\'avoir voté !</strong></p>';
$sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";

$result = mysql_query($sql);

while($resultat = mysql_fetch_array($result)) {
$cadre[] = $resultat['reponse'];

}

$totalvote= count($cadre);

$totalreponse = array_count_values($cadre);

$reponse1 = bcdiv($totalreponse[1]*100, $totalvote, 2);
$reponse2 = bcdiv($totalreponse[2]*100, $totalvote, 2);
$reponse3 = bcdiv($totalreponse[3]*100, $totalvote, 2);
$reponse4 = bcdiv($totalreponse[4]*100, $totalvote, 2);


function VerifText($text,$valeur,$reponse,$totaldesreponse){
if ($text < '1'){

$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <strong>0</strong> vote.<br />';
}
if ($text = '1'){

$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <img src="fond.bmp" alt="chargement impossible" height="5" width="'.
$reponse.'" /> <strong>'.$totaldesreponse.'</strong> vote.<br />';
}
if ($text > '1'){

$text1 = '<strong> - '.$valeur.' : </strong>'.$reponse.
'% <img src="fond.bmp" alt="chargement impossible" height="5" width="'.
$reponse.'" /> <strong>'.$totaldesreponse.'</strong> votes.<br />';
}
return $text1;
}

echo VerifText($totalreponse[1],'valeur 1',$reponse1,$totalreponse[1]).
VerifText($totalreponse[2],'valeur 2',$reponse2,$totalreponse[2]). VerifText(
$totalreponse[3],'valeur 3',$reponse3,$totalreponse[3]).VerifText($totalreponse[
4],'valeur 4',$reponse4,$totalreponse[4]);
echo '<strong> Total votes : </strong>'.$totalvote.'<br /><br /><br />';

}else{

echo 'Quelle Valeur souhaité vous ? <br /><br />';
echo
'<form method="POST" action="index.php?vote=ok"><div><input class="zonetext"' .
' type="radio" value="1" name="choix" /> - Valeur 1<br /><input class="zonetex' .
't" type="radio" value="2" name="choix" /> - Valeur 2<br /><input class="zonet' .
'ext" type="radio" value="3" name="choix" /> - Valeur 3<br /><input class="zon' .
'etext" type="radio" value="4" name="choix" /> - Valeur 4<br /><input class="z' .
'onetext" type="submit" value=" Ok ! " /></div></form>';

}

?>
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS