2010-06-03 3 views
1

Я отредактировал вопрос, поскольку то, что я сказал ранее, состояло из двух частей кода.Динамический выпадающий список!

У меня есть следующий код:

 $f = "SELECT * FROM ".TBL_FIXTURES." WHERE compname = '$_POST[league]' AND home_user = '$_SESSION[username]' ORDER BY away_user"; 
    $fixtures = mysql_query($f); 
    ?> 
    <? 
    while($row = mysql_fetch_assoc($fixtures)) 
    { 
     extract($row); 
     $info = explode("_",$row[compname]);  
     ?> 


     <select name="hu" class="combo"> 
      <option value="<? echo $home_user ?>"><? echo $home_user?></option> 
     </select>  
     <select name="au" class="combo"> 
     <?php 
     while($row = mysql_fetch_assoc($fixtures)) 
     { 
      $u=$row['away_user']; 
      echo "<option value=\"$u\">$u</option>"; 
     } 
     ?> 
     </select> 
     <? 

    } 
    ?> 

Как вы можете видеть, есть два в то время как петля. Но первое значение из выпадающего списка для файла away_user отсутствует. Если я удалю первый цикл, он появится, но падение для home_user исчезнет. Как я могу обойти это?

БЛАГОДАРЯ

ответ

0

проблема заключается в том, что в вашем втором цикле вы звоните mysql_fetch_assoc ($ сантехники), так что вы переходите на вторую запись перед использованием поля away_user из первой записи. Возможны два варианта:

Создать первый вариант перед циклом

<select name="au" class="combo"> 
    <?php 
    $u=$row['away_user']; 
    echo "<option value=\"$u\">$u</option>"; 

    while($row = mysql_fetch_assoc($fixtures)) 
    { 
     $u=$row['away_user']; 
     echo "<option value=\"$u\">$u</option>"; 
    } 
    ?> 
    </select> 

Изменить петлю на сделай время цикла

<select name="au" class="combo"> 
    <?php 
    do 
    { 
     $u=$row['away_user']; 
     echo "<option value=\"$u\">$u</option>"; 
    } while($row = mysql_fetch_assoc($fixtures)) 
    ?> 
    </select> 
0

это дает ошибку? кажется, что вы пропускаете кронштейн (") в конце-й строки:

echo"<div align=\"center\"> <table cellspacing=\"10\" style='border: 1px dotted' width=\"450\" bgcolor=\"#eeeeee\"> 
0

Я не уверен, почему вы также печать таблицы ... но в цикле вы выводите </select>, это проблема.

вы должны сделать

echo '<select>'; 
while (....) 
    { 
    echo '<option>'.$u.'</option>'; 
    } 
echo '</select>'; 

<table code here> 
Смежные вопросы