2015-12-28 44 views
1

在這裏,是我的查詢:下拉列表中只出現第一個錶行

$sql = "SELECT * FROM employee"; 
$query = "SELECT * FROM employeerole ORDER BY role_id"; 

$result = mysqli_query($link, $sql); 
$result1 = mysqli_query($link, $query); 
<?php 
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    ?> 
    <tr> 
     <td><?php echo $row["id"]; ?></td> 
     <td><?php echo $row["first_name"]; ?></td> 
     <td><?php echo $row["last_name"]; ?></td> 
     <td><?php echo $row["username"]; ?></td> 
     <td><?php echo $row["role"]; ?></td> 
     <td> 

這裏是我的代碼,包括表格單元格下拉框然而,在下拉框中的數據只出現在表的第一行(如下面截圖所示)

這是否與循環有關?

  <form action ="change.php"> 
       <select id="role" class="" onchange="this.form.submit()"> 
        <?php while ($line = mysqli_fetch_array($result1, MYSQL_ASSOC)) { ?> 
        <option value="<?php echo $line['role_id']; ?>"><?php echo $line['role_name']; ?></option> 
        <?php } ?> 
       </select> 
      </form> 
     </td> 
     <td><input type="button" onclick="ConfirmDelete()" value="Delete account"</td> 
    </tr> 
    <?php } ?> 

表的屏幕截圖:

enter image description here

+0

mysqli_fetch_array走到了盡頭,接下來循環不會有下一個。您需要將數據保存到數組,然後多次循環。 – FirstOne

+0

可能重複[如何通過mysql結果兩次?](http://stackoverflow.com/questions/6439230/how-to-go-through-mysql-result-twice) – FirstOne

+0

@FirstOne他們使用' 'mysqli_fetch_array($ result,MYSQLI_ASSOC)中的MYSQLI_ASSOC''我有一種感覺,他們使用了一個LIMIT,他們沒有顯示。但我可能是錯的。 –

回答

1

的問題是,結果集$result1的第一行本身耗盡。您必須調整結果指針以指向結果集的開頭,以便您可以再次遍歷它。爲此使用mysqli_data_seek()函數。

添加此行mysqli_data_seek($result1, 0);正好在此行之後..."this.form.submit()">行。

所以,你的代碼應該是這樣的:

// your code 

     <form action ="change.php"> 
      <select id="role" class="" onchange="this.form.submit()"> 
       <?php 
        mysqli_data_seek($result1, 0); 
        while ($line = mysqli_fetch_array($result1, MYSQLI_ASSOC)) { 
       ?> 
       <option value="<?php echo $line['role_id']; ?>"><?php echo $line['role_name']; ?></option> 
       <?php } ?> 
      </select> 
     </form> 
    </td> 
    <td><input type="button" onclick="ConfirmDelete()" value="Delete account"</td> 
</tr> 
<?php } ?> 

// your code 
+0

您沒有閱讀[評論](http://stackoverflow.com/questions/34498160/dropdown-list-only-appears-in-the-first-table-row#comment56738082_34498160),對吧? ^^ – FirstOne

+1

@FirstOne哦,那'MYSQLI_ASSOC'部分。修復。 –

相關問題