2010-11-22 3 views
1

J'ai un formulaire dans lequel il existe une liste déroulante. cette liste est remplie avec des valeurs de la base de données. Mais, quand je soumets le formulaire, la liste déroulante obtient des valeurs en double.valeurs de liste déroulante en double sur le formulaire

Code -

<form name="form1" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">    

    <select name="test"> 
    <?php 
     GetList(); 
    ?> 
    </select> 

    <input type="submit" value="submit" class="submit" /> 

</form> 

ma fonction GetList -

function GetList() 
{ 
    global $db; 

    $sql = "SELECT id,text FROM table"; 

    $result = mysql_query ($sql); 


    while($nt=mysql_fetch_array($result)) 
    { //Array or records stored in $nt 
    echo '<option value='.$nt[id].'>'.$nt[text].'</option>'; 
    } 

} 

La liste déroulante doit être rempli qu'une seule fois. Cela ne me dérange pas si la liste déroulante est re-peuplée sur le formulaire, mais je ne veux pas de valeurs en double dans ma liste déroulante?

Comment puis-je me débarrasser des valeurs en double? Par exemple - si la liste déroulante affiche les valeurs 1, 2, 3, 4 lorsque j'atteins la page pour la première fois. Après, je clique sur Envoyer, la liste déroulante affiche 1,2,3,4,1,2,3,4. Et continue comme ça autant de fois que je le soumets.

+1

Bien sûr, votre requête ne reçoit pas de doublons? Le code que vous avez posté ne devrait pas produire de doublons. Comment aimez-vous la transition de .net? – DampeS8N

+0

Je suis sûr que ma requête ne produit pas de valeurs en double. ha ha je suis honnêtement perplexe, comment voulez-vous savoir que je viens de passer à PHP? Mes questions sont-elles évidentes? La transition est frustrante, je passe beaucoup de temps sur des choses simples pas parce que je ne sais pas comment le faire, mais parce que je ne sais pas comment le faire en utilisant php :) – pavanred

+0

J'ai beaucoup cherché sur internet mais je n'ai pas trouvé Solution. J'ai l'intention de retirer tout le code et de refaire la page, en veillant à ne pas faire d'erreurs. – pavanred

Répondre

0

Il semble qu'il y ait des données en double dans votre base de données, ou que la logique de votre boucle le rende deux fois plus ou moins lorsque vous faites un post. Si vous montrez le reste de votre code GetList, il sera plus facile de vous aider.

+0

Je ne récupère pas les données en double de la base de données. Et, j'ai ajouté le reste du code GetList, si cela aide. – pavanred

0

Peut-être que vous récupérez des valeurs en double à partir de la base de données? .. ou en boucle deux fois ce qui est bien sûr plus facile à repérer.

+0

Je suis assez sûr que je ne récupère pas les valeurs en double de la base de données. – pavanred

0

Ceci est assez approximatif deviner. Cela aide-t-il si vous ajoutez ceci après votre boucle while:

mysql_free_result($result); 
Questions connexes