2013-06-29 2 views
0

J'ai un problème avec mon code que le résultat a une boucle en double.éviter la boucle en double dans PHP SQL

Voici mon code:

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" data-iceapw="6"> 
<?php for($a=0;$a<5;$a++) { 
$sql = "SELECT * FROM personality_question_tbl where personality_question_id in (select personality_question_id from 
                     personality_question_type_tbl where 
                     personality_id='P01') ORDER BY RAND() limit 1" ; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_array($result)) { 
    extract ($row); 
    } 
?> 


<table width="200" border="0"> 
    <tr> 
    <td><?php echo $personality_question_id[$a]; ?> </td> 
    </tr> 
    <tr> 
    <td> 
     <table width="200"> 
     <tr> 
      <td><label> 
      <input type="radio" name="answer" value="1" id="answer_0"> 
      yes</label></td> 
     </tr> 
     <tr> 
      <td><label> 
      <input type="radio" name="answer" value="0" id="answer_1"> 
      no</label></td> 
     </tr> 
     </table> 
    </td> 
    </tr> 
</table> 
</form> 
<?php } ?> 
<input name="submit" type="submit" value="Go"> 
<input name="submitted" type="hidden" value="TRUE"> 
</form> 

Le problème est que je reçois toujours le résultat en double PHP bien qu'il n'y ait pas de données en double dans la base de données ...

+0

vous pourriez essayez d'ajouter 'GROUP BY personality_question_id' à votre requête. Juste avant "ORDER BY" – chrislondon

Répondre

0

Votre faire une boucle, bien sûr vous allez avoir double emploi .. à moins que je ne comprends pas votre question

supprimer <?php for($a=0;$a<5;$a++) { et vous permettra de résoudre votre duplication

Questions connexes