Requête en fonction d'un choix

Requête en fonction d'un choix - PHP - Programmation

Marsh Posté le 18-09-2010 à 17:32:05    

Salut tout le monde
 
 Voilà mon problème: Sur mon site, arrive un moment où l'utilisateur à le choix entre 2 thèmes:
 
- Thème X
- Thème Y
 
Ces 2 thèmes sont choisis aléatoirement parmis ceux que j'ai créés. Pour cela, j'ai fait 2 tables différentes en faisant 2 requêtes différentes. Jusque là pas de soucis.
 
Seulement voilà, étant donné que je n'ai aucune idée du thème qui va tomber, comment je peux faire pour associer les questions du thème au thème qui va être choisis ?! Exemple:
 
-Thème 1: les oiseaux
-Thème 2: les villes
 
Comment je fais pour que si je choisis le thème "oiseaux" j'ai pas des questions de la ville ou autre qui tombe en rappellant que je ne sais jamais quel thème va tomber !  
 
En espérant avoir été clair, merci d'avance pour votre aide.
 

Reply

Marsh Posté le 18-09-2010 à 17:32:05   

Reply

Marsh Posté le 18-09-2010 à 22:35:31    

Tu dois choisir ton thème par Rand() je suppose. Rand() va te renvoyer le numéro du thème, il suffit que tu le récupères dans une variable, que tu réutilises. Si tu dois changer de page, soit tu transmets ce thème par GET, soit par variable de session, voire cookie.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 19-09-2010 à 10:57:32    

ok je vais esseyé merci !

Reply

Marsh Posté le 20-09-2010 à 13:01:02    

Evidemment, dans ta table des questions, y'a en clé étrangère l'ID du thème, histoire de pouvoir lier ta table des questions à ta table des thèmes (donc avoir des questions en rapport avec le thème désiré).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 21-09-2010 à 20:06:46    

Hmm mon problème persiste malres tout !
 
J'ai créé un champ id_theme dans les questions en lui mettant 1 pour les questions qui correspondent au theme 1 et 2 pour les questions qui correspondent au theme 2.
 
Ensuite voilà la requete que je tape :
 
 
 
   
    $reponse = $bdd->query('SELECT theme.themes, theme.id, questions.Question FROM theme, questions WHERE questions.id_theme = themes.id');    
     
     $donnees = $reponse->fetch();
 
?>
 
 <div id = "quest"> <?php echo $donnees['Question']; ?> </div>
 
Résultat: sa m'affiche toujours la même question quelque soit le theme ! (cette question affichée est la première de ma table).  
 
Est ce que sa peut venir du fait que je change de page entre le choix du theme et la page suivante ?  

Reply

Marsh Posté le 21-09-2010 à 20:31:01    

aideinfo a écrit :

Tu dois choisir ton thème par Rand() je suppose. Rand() va te renvoyer le numéro du thème, il suffit que tu le récupères dans une variable, que tu réutilises. Si tu dois changer de page, soit tu transmets ce thème par GET, soit par variable de session, voire cookie.



---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 21-09-2010 à 20:47:40    

Ok mais le problème c'est que comment je transfert une donnée qui vient d'un lien ? je veux dire comment je dois m'y prendre pour transférer le choix de l'utilisateur qui est fait à partir d'un lien ?
 
Je vois pas comment je dois écrire sa en variable de session
 
J'espère avoir été clair !

Reply

Marsh Posté le 22-09-2010 à 14:36:28    

Code :
  1. $donnees = $reponse->fetch();
  2. <div id = "quest"> <?php echo $donnees['Question']; ?> </div>


 
En même temps, si tu fait pas un while pour afficher toutes les questions, ça risque pas de marcher. Et utilise RAND() pour avoir un ordre aléatoire du thème et des question du thème on t'a dit... :o


Message édité par rufo le 22-09-2010 à 14:36:52

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-09-2010 à 21:37:21    

Cette fois c'est l'inverse aucunes question ne s'affiche quelque soit le theme voici le code complet:
 
 
Syntaxe: [ Télécharger ] [ Masquer ] [ Sélectionner ] [ Agrandir ]
Code php
       <?php      
 
                        try
{
        $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}  
 
?>
 
<?php
     
   $theme = htmlspecialchars($_GET['theme']);
 
     
  $reponse = $bdd->query('SELECT theme.themes, theme.id, questions.Question FROM theme, questions WHERE themes.id = ' . $theme . ' AND questions.id_theme = themes.id');
 
   
     
     while($donnees = $reponse->fetch()){
 
?>
 
 <div id = "quest"> <?php echo $donnees['Question']; ?> </div>
 
<?php
}
?>


Message édité par Jacksons le 24-09-2010 à 21:38:17
Reply

Marsh Posté le 25-09-2010 à 00:39:24    

Reply

Marsh Posté le 25-09-2010 à 00:39:24   

Reply

Marsh Posté le 25-09-2010 à 12:06:44    

je l'ai fait sa change absolument rien:
 
    <?php      
 
                    try
{
 $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
 $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
 
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}  
 
?>
 
<?php
     
   $theme = htmlspecialchars($_GET['theme']);
   $id = htmlspecialchars($_GET['id']);
 
     $reponse = $bdd->query('SELECT themes.theme, themes.id, questions.Question FROM themes, questions WHERE questions.id_themes = themes.id AND themes.id = '. $theme. '');
         
     while($donnees = $reponse->fetch()){
      var_dump($donnees);
 
?>
 
 <div id = "quest"> <?php echo $donnees['Question']; ?> </div>
 
    <?php
     }
     ?>

Reply

Marsh Posté le 25-09-2010 à 16:38:28    

je t'ai répondu sur l'autre forum

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed