Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 01/01/2011, 18h14   #1
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Par défaut Affichage libellé d'une base de données

Bonsoir / Bonjour à tous,

afin de finir la dernière partie de mon site, j'ai besoin de vous pour m'aider à résoudre un (petit) problème.
J'ai besoin que ma page affiche les libellés de la proposition souhaitée en fonction du choix de l'utilisateur.
J'ai pour l'instant tous les libellés dans ma base de données, et ma page m'affiche le premier libellé.

Je voudrais pouvoir afficher d'autres libellés suivant la réponse de l'utilisateur (oui ou non).
Problème : une réponse oui ne signifie pas forcément auto-incrémentation du numéro de libellé.

Je vous montre ce que j'ai déjà :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
include'haut.php';
$base = mysql_connect ('localhost', 'root', '');  
mysql_select_db ('ContratGlobal', $base) ;
echo "<br/><br/>";
echo "<br/><br/>";
echo "<table>";
$requete = 'SELECT libelle FROM propositions WHERE numProposition = 1';
$resultat = mysql_query($requete, $base);
while ($row = mysql_fetch_assoc($resultat))
	{
	echo $row['libelle'];
	}
echo "<br/><br/>";
echo '
<form name="choixProp" action ="premiereQuestion.php" method="post">'
	echo '<input type = "radio" name = "reponse" value = "oui">Oui';
	echo "&nbsp&nbsp&nbsp";
	echo '<input type = "radio" name = "reponse" value = "non">Non
</form>';
echo "</table>";
?>

J'avais pensé à faire un test à chaque réponse du client du genre :
Code php :
1
2
3
4
5
6
7
8
9
 
if $requete==1 & $_POST[reponse]==oui
   $requete = 'SELECT libelle FROM propositions WHERE numProposition = 5'; /* 5 étant un exemple au pif */
   $resultat = mysql_query($requete, $base);
    while ($row = mysql_fetch_assoc($resultat))
	{
	echo $row['libelle'];
	}
    echo "<br/><br/>";

Si vous avez d'autres idées, je suis preneur !

Merci
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 19h17   #2
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Si je comprend bien, tu as un questionnaire du genre: "Si vous avez répondu oui à cette question, allez à la question suivante, sinon allez à la question 6". Essentiellement, la réponse de l'utilisateur à la question courante dicte quelle sera la prochaine question à afficher.

Comme toutes tes questions semblent être des question Oui/Non, tu pourrais stocker, avec le libellé de la question, le numéro de la prochaine question dépendant de la réponse comme ceci:

Table propositions:

Citation:
numProposition | Libelle | QSuivanteOui | QSuivanteNon
1 "Question" 2 3
2 "Question" 3 6
Et ainsi de suite. Donc, maintenant, pour charger la question suivante, tu n'as qu'à connaître la réponse de l'utilisateur ainsi que la question actuelle et tu charges le tout en conséquence.

Code :
1
2
3
4
5
6
7
8
9
 
if($reponse == 1) //en supposant que ça veut dire "oui"
{
       $requete = "SELECT QSuivanteOui FROM propositions where numProposition = " . $IDQuestionActuelle;
}
else
{
      $requete = "SELECT QSuivanteNon FROM propositions where numProposition = " . $IDQuestionActuelle;
}
Après ça, c'est simplement de faire un autre SELECT pour aller chercher la question d'après en utilisant l'ID retourné par la requête que je t'ai donné ci-dessus.

En espérant que ceci te soit utile.

Osu
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 19h50   #3
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Ah ouai pas bête !

Merci beaucoup, je vais étudier ça plus en détail. Je testerais à l'occasion et je te donnerais des nouvelles.

Merci !
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 10h46   #4
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
EDIT : j'ai un peu avancé, ré-écris le code plus lisiblement.

Code php :
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
 
<?php
		$numProposition = 1;
		$requete = 'SELECT libelle FROM propositions WHERE numProposition =' . $numProposition;
		$resultat = mysql_query($requete, $base);
		while ($row = mysql_fetch_assoc($resultat))
		{
			echo $row['libelle'];
		}
	?>
	<form name="reponse" method="post" action="propositions.php">
		<input type="radio" value="Oui" name="reponse">Oui
		<?php echo '&nbsp&nbsp&nbsp&nbsp' ?>
		<input type="radio" value="Non" name="reponse">Non
		<br/>
		<input type="submit" value="Proposition suivante">
	</form>
	<?php
		if ($_POST['reponse'] == "Oui" AND $numProposition == 1)
		{
			/*changer le numProposition par le numQuestionSuivante*/
			/*$numProposition =;*/
			$requete = "SELECT libelle FROM propositions where numProposition =" . $numProposition;
			$resultat = mysql_query($requete, $base);
			while ($row = mysql_fetch_assoc($resultat))
			{
				echo $row['libelle'];
			}
		}
		elseif ($_POST['reponse'] == "Non" AND $numProposition == 1)
		{
			$requete = "SELECT QuestionSuivanteN, libelle FROM propositions where numProposition = " . $numProposition;
			$resultat = mysql_query($requete, $base);
			while ($row = mysql_fetch_assoc($resultat))
			{
				echo $row['libelle'];
			}
		}

Donc, techniquement, je suis toujours bloqué...
Je n'arrive pas à faire changer le numero de la proposition actuelle par celui de la question suivante pour afficher la proposition suivante.

Si vous avez des idées.
feldi 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 16h23.


 
 
 
 
Partenaires

Hébergement Web