Page 1 sur 1

Problème de récupération de plusieurs données !

Posté : 27 févr. 2007, 17:26
par angebleu17
Bonjour,

J'ai un petit problème...

Comment peut-on récupérer plusieurs valeurs différente d'une même variable ?

En fait, j'affiche un sondage avec plusieurs questions, et pour chaque question il y a plusieurs réponses.

Donc en fait j'aimerais récupérer l'id de la question et l'id de la réponse. (en sachant que dans mes tables j'ai des champs id_question et id_reponse).

Seuleument quand j'ai essayé de récupéré l'id des questions, ça ne m'affiche que l'id de la derniére question.

Et dans ma page avec les question et réponses, si j'affiche l'id de la question et l'id de la réponse il m'affiche les bonnes données.. le problème est au niveau de la récupération car les données ont les même noms de variables !

Quelqu'un aurait-il une solution ?

Posté : 27 févr. 2007, 17:37
par thehawk
Tu cherche a récuperer l'id de toutes tes questions ?

Posté : 27 févr. 2007, 17:37
par Truc
montre ton code

Posté : 27 févr. 2007, 17:54
par angebleu17
oui je voudrais récupérer l'id de toutes les questions et aprés les id des réponses suivant les questions !!

Donc au début de mon code je récupére l'id du sondage, je vérifie s'il y a des questions, si c'est le cas alors :
<?
$sql = "SELECT * FROM question where id_sondage ='$id_sondage' ORDER BY priorite ASC";
$req = mysql_query($sql); 


while($valeur = mysql_fetch_array($req))
{   
$titre_question =  addslashes($valeur['titre_question']);
$id_question = $valeur['id_question'];

//Là ça m'affiche tous les titres des questions
echo'<u><p>'.$titre_question.'</p></u>';

$requete2 = "SELECT * FROM question WHERE id_sondage = '$id_sondage' AND titre_question = '$titre_question'";	

$resultat = mysql_query($requete2) or die ('Erreur SQL : impossible d\'effectuer la requête : <br />'.$requete2);

$total = mysql_num_rows($resultat);

//Récupére la méthode de la question, si c'est des boutons radio, case a cocher...etc

if ($total) 
{
   while($val= mysql_fetch_array($resultat)) 
   {
   $methode = $val['methode'];
   }
} 

$requete2 = "SELECT * FROM reponse WHERE id_sondage = '$id_sondage' AND id_question = '$id_question'";	
$resultat2 = mysql_query($requete2) or die ('Erreur SQL : impossible d\'effectuer la requête : <br />'.$requete2);
$total = mysql_num_rows($resultat2);
if ($total) 
{
while($val= mysql_fetch_array($resultat2)) 
{
$id_reponse = $val['id_reponse'];
$id_question = $val['id_question'];
$id_sondage = $val['id_sondage'];
$intitule = $val['intitule'];
?>
<html>
<body>
<div align ="center">
<form action="envoyer_questionnaire.php" method="post" name="questionnaire">

<?
//suivant la méthode on affiche une zone texte, bouton radio...etc			
switch ($methode) 
{
case 'texte':
echo'<input type="text" name="text" size="40"/>';
echo'<p></p>';
break;
					
case 'textarea':		
echo'<TEXTAREA name="textarea" rows=4 cols=40></TEXTAREA>';
echo'<p></p>';
break;
						
//Liste déroulante
case 'deroulante':
echo'<select name="liste">';

//je refais la requête sinon il m'affiche un liste déroulante pr chaque réponse
$requete2 = "SELECT * FROM reponse WHERE id_sondage = '$id_sondage' AND id_question = '$id_question'";	
				
$resultat2 = mysql_query($requete2) or die ('Erreur SQL : impossible d\'effectuer la requête : <br />'.$requete2);
						
$total = mysql_num_rows($resultat2);
						
if ($total) 
  {
while($val= mysql_fetch_array($resultat2)) 
    {
$intitule = $val['intitule'];
$id_reponse = $val['id_reponse'];
$id_questions = $val['id_question'];

// recupére l'id de la réponse mais affiche l'intitulé
echo '<option value="'.$id_reponse.'">'.$intitule;
  }
    }
echo'</select>';
break;
	
case 'radio':				
echo'<input type="radio" name="radio">'.$intitule.'<br>'; 	
break;
								
case 'checkbox':
echo'<input type="checkbox" name="checkbox">'.$intitule.'<br>'; 
 break;
}//fin switch
}//fin while			
}//fin du if
}//fin du premier while
	
//Permet de récupérer l'id du sondage, le titre du sondage et l'id de la réponse sélectionné dans les pages précédentes (je ne pense pas que ça soit bon !!!)
					
echo '<input type="hidden" name="id_sondage" value="'.$id_sondage.'">';
					
echo '<input type="hidden" name="id_question" value="'.$id_question.'">';
					
echo '<input type="hidden" name="id_reponse" value="'.$id_reponse.'">';
					
echo'<input class="boutonpale"  type="submit" value="Valider">';
						
?>
</div>
</form>
</body>
</html>
Voilà donc ce code là marche.

De plus j'ai un autre petit probléme, lorqu'il y a plusieurs questions où il y a des boutons radios comme réponse.
Mes bouton radio ont tous le même nom, du coup je ne peux pas les différencier et en plus je ne peux choisir qu'un choix sur les plusieurs questions ! je nz vois pas trop comment faire pour mettrent des noms différent !

Posté : 28 févr. 2007, 10:38
par angebleu17
Pour différencier mes boutons radio, j'ai mis comme nom l'id de la question :
echo'<input type="radio" name=".$id_question.">'.$intitule.'<br>'; 
Mais ça ne marche toujours pas car il me renvoi que l'id de la derniére question...

comment faire pour récupérer les id de toute les questions ?