8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,
Voila je viens demander un petit d'aide pour mon script sondage que j'essai de réalisé ....

Voila je vous explique comment je voudrais que marche le script
On na deux pages la page sondage.php qui affiche le sondage et les propositions du sondage.php et la page form-sondage.php qui enregistre le vote de la personne dans la BDD et qui affiche les infos sur sondage.
Donc la personne arrive sur le site elle ce log sinon elle ne peut pas voté (je ferait le script plus tard pour le moment j'ai crée $_SESSION['pseudo']='Viva'; ) on affiche le sondage elle choisi un réponse puis on enregistre dans la BDD et on affiche le résultat.


Mon souci et le suivant quand la personne revient sur la page sondage.php
faire une vérification si la personne a déjà voter pour cette questions on passe a la suivant mais Jai essayer plusieurs chose et je bute pouvait vous m’aider ?

voila mes tables sql :

sondage_questions
-idQuestions
-question

sondage_proposition
-idProposition
-idQuestions
-proposition

sondage_utilisateur
-utilisateur
-idReponse
-idProposition
-idQuestions

pour le code :

sondage.php

<?php 
	session_start();
	include ("../connexion.php");
	$_SESSION['pseudo']='Viva';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>

<?php

// Je récup la question du sondage
	$question_sondage="SELECT * FROM sondage_questions ORDER BY idQuestions ASC";
	$result_question_sondage=mysql_query($question_sondage);
	while($ligne_question_sondage=mysql_fetch_array($result_question_sondage)){
		echo'<div id="question">'.$ligne_question_sondage['question'].'</div>';
// Je récup les propostion du sondage
	$proposition="SELECT * FROM sondage_proposition WHERE idQuestions='".$ligne_question_sondage['idQuestions']."' ORDER BY idProposition ASC ";
	$result_proposition=mysql_query($proposition);
	echo $proposition;
	echo"<form method='post' action='form-sondage.php'>";
		while($ligne_proposition=mysql_fetch_array($result_proposition)){
			echo' '.$ligne_proposition['proposition'].'<input type="radio" name="vote" value="'.$ligne_proposition['idProposition'].'" /><br />';
		}
			echo'<input type="hidden" name="idsondage" value="'.$ligne_question_sondage['idQuestions'].'" />';
			echo'<input type="submit" value="voter">';
			echo'</form>';
	}
?>
</body>
</html>


form-sondage.php

<?php 
	session_start();
	include ("../connexion.php");
	$_SESSION['pseudo']='Viva';

	function cacul_pourcentage($nombre,$total,$pourcentage)
	{ 
	  $resultat = ($nombre/$total) * $pourcentage;
	  return round($resultat); // Arrondi la valeur
	} 
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<?php
// #####################
// On rentre les infos dans la BDD
	$vote = $_POST['vote'];
	$idsondage=$_POST['idsondage'];
	
	mysql_query ("INSERT INTO sondage_utilisateur (utilisateur,idReponse,idProposition,idQuestions) VALUES('" . $_SESSION['pseudo'] . "', '', '" . $vote . "', '" . $idsondage . "')")or die (mysql_error()); /* Là, on entre juste les données dans une nouvelle entrée de la table SQL...*/
	
	$question="SELECT * FROM sondage_questions WHERE idQuestions='".$idsondage."' ";
	echo $question;
	echo'<br />';
	$result=mysql_query($question);
	$donneesquest = mysql_fetch_array($result);
	// echo $donneesquest['question'];
	$questionaffichage=$donneesquest['question'];
	// echo'<br />';
	
	$repvote="SELECT * FROM sondage_utilisateur, sondage_proposition WHERE sondage_utilisateur.utilisateur='".$_SESSION['pseudo']."' AND sondage_utilisateur.idQuestions='".$idsondage."' AND sondage_utilisateur.idProposition=sondage_proposition.idProposition ";
				echo $repvote;
				$resultvoteperso=mysql_query($repvote);
				$affichagevote=mysql_fetch_array($resultvoteperso);
				echo'<p>A la question '.$questionaffichage.' vous avait répondu : '.$affichagevote['proposition'].'</p>';
				echo'<p>Réponse :</p>';
				$proposition="SELECT * FROM sondage_proposition WHERE idQuestions='".$donneesquest['idQuestions']."' ORDER BY idProposition ASC ";
			 	$resultpro=mysql_query($proposition);
				$nombredevotetotal="SELECT * FROM sondage_utilisateur WHERE idQuestions='".$donneesquest['idQuestions']."' ";
				$resnombredevotetotal=mysql_query($nombredevotetotal);
				$resnombredevotetotal1 = mysql_num_rows($resnombredevotetotal);
					echo'<p>vote total : '.$resnombredevotetotal1.' </p>';
			 		while($donnespro=mysql_fetch_array($resultpro)){
			 			echo'<ul>';
						$nombredevote="SELECT * FROM sondage_utilisateur WHERE idQuestions='".$donneesquest['idQuestions']."' AND idProposition='".$donnespro['idProposition']."' ";
						$resnbvote=mysql_query($nombredevote);
						echo $nombredevote;
						$resnombrevote = mysql_num_rows($resnbvote);
						echo'<li>'.$donnespro['proposition'].' ('.$resnombrevote.' <i>Votes</i>)</li>';
						echo'<li>';
							$total_vote = $resnombredevotetotal1;
							$nombre_vote = $resnombrevote;
							$valeur_pourcentage = 100;
							$pourcentage = cacul_pourcentage($nombre_vote,$total_vote,$valeur_pourcentage)." %";
							$taille=$pourcentage * 3;
							echo cacul_pourcentage($nombre_vote,$total_vote,$valeur_pourcentage)." %";
							echo'<img src="../themes/icones/gauchep.jpg" /><img src="../themes/icones/pourcentage.jpg" style="width:'.$taille.'px; height:12px;" /><img src="../themes/icones/droitp.jpg" /> ';
						echo'</li>';
					echo'</ul>';
				}
?>
</body>
</html>


M'erci d'avance !
Modifié par Viva (09 Jul 2008 - 21:25)
Salut Viva Smiley cligne ,

tu pourrais essayer quelque chose comme :
$question_sondage="SELECT * FROM sondage_questions 
WHERE idQuestions not in (SELECT idQuestions FROM sondage_utilisateur 
WHERE utilisateur = '".$_SESSION['pseudo']."') ORDER BY idQuestions";

A+
Salut Heyoan !

Je s'avais pas que l'on pouvait faire comme ca je vais essayer ca je te tien au courant ! merci de ton aide
ca marche d'enfer quoi sérieux le " not in " je s’avais pas du tous tu aurais un lien ou je peux regarder des trucs du genre ?