Problème pour la création d'un site de question réponse.

geogeolepro60
Invité n'ayant pas de compte PHPfrance

17 avr. 2013, 23:11

Bonjour,
J'ai un petit souci qui est que je voudrais créer un site de question réponse pour m'aider à apprendre le vocabulaire en anglais ou tout autre langue, donc j'ai créé une BDD dans la qu'elle il y avait un champ pour l'id, un autre pour les mots en anglais et encore un autre pour les mots en français.
Donc en cela pas de problème, sauf que quand je lance mon programme je ne sais pour quoi il vérifie le mot en français que j'ai mit dans mon formulaire avec la variable aléatoire suivante alors que j'aurais voulu que se soit avec la variable actuel se qui fait qu'il n'est plus apte de me dire si il est bon ou pas.

Voila mon programme:
<html>
<?php

	if($link = mysql_connect("127.0.0.1", "root", ""))
	{
		if(mysql_select_db("anglais"))
		{	

				$nb_min = 1;
				$e=mysql_query("SELECT * FROM anglais");
				$nb_max=mysql_num_rows($e);
				$nombre = mt_rand($nb_min,$nb_max);
				$requete=mysql_query("SELECT * FROM anglais WHERE id=$nombre");
				$val = mysql_fetch_row($requete);
					
					
				echo"$val[1]";
				echo"<form action='anglais_french.php' method='post'>
				 Votre traduction : <input type='text' name='french' />
				 <input type='submit' name='OK' value='OK'>
				</form>";
				
				if(isset($_POST["OK"]))
				{					
					if($val1[2]==$_POST["french"])
					{
						echo"bien";
					}
					else
					{
						echo"pas bien";
					}
				}
				
				echo"<a href='../index.php'>Choix du language</a>";
		}
	}
	else
	{
		die("Echec de connexion au serveur de base de données!<br>");
	}
?>
</html>
Je remercie tout personne qui aura lu se poste et qui sera assez gentil pour m'aider.
(ps:Pardon pour les fautes d’orthographe)

Mammouth du PHP | 2278 Messages

18 avr. 2013, 09:19

Remarque générale:
Utiliser mysqli ou pdo à la place de mysql.
Sur ton problème:
Chaque fois que tu cliques une réponse, tu relances ton script et donc tu recalcules une nouvelle valeur pour $nombre; et bien sûr tu as faux plus souvent que vrai.
Il faut repenser ton script:
1) test de la réponse (la réponse donnée est passée en post comme tu fais; la bonne réponse est passée en post (rinput type='hidden'...> ou en session)
$french = isset($_POST['french']) ? $_POST['french'] : "";
$anglais= isset($_POST['anglais']) ? $_POST['anglais'] : "";
if ($anglais != "")
{
 if($anglais]== $french)
  {
           echo"bien";
  }
  else
  {
           echo"pas bien";
  }
}
et maintenant ton tirage aléatoire et:
$anglais = $val[2];
<input type='hidden' value = '$anglais' name ="'anglais' />
et si ça ne passe pas le mot anglais, tu remplaces echo par print.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

geogeolepro60
Invité n'ayant pas de compte PHPfrance

18 avr. 2013, 14:59

Merci sirakawa pour ta réponse, mais quand je mais ton morceau de programme à la place du mien, je ne sais pour quoi, mais il ne rentre pas dans la condition if($anglais==$french).

Mammouth du PHP | 2278 Messages

18 avr. 2013, 18:25

erreur de ma part: (pas testé)
if($anglais == $french)
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD