2017-05-13 30 views
0

所以這是管理員頁面的一部分。 若干修改後,我來到了這一點,這是最好的我能得到不幸的是:循環遍歷選定的用戶並動態填充下拉列表

<?php 

$sql = "SELECT name 
     FROM users"; 
$result = mysqli_query($connection, $sql); 

$users = array(); 

while ($row = mysqli_fetch_assoc($result)) 
{ 
    $users[] = $row["name"]; 
} 

echo ('</br><form action="" method="POST" style="display:inline!important"></br> 
     <select name="deleteUser"> 
     <option value="' . $users[1] . '">' . $users[1] . '</option>' . 
     '<option value="' . $users[2] . '">' . $users[2] . '</option>' . 
     '<option value="' . $users[3] . '">' . $users[3] . '</option>' . 
     '<option value="' . $users[4] . '">' . $users[4] . '</option>' . 
     '<input class="w3-bar-item w3-button w3-hide-small w3-hover-green" type="submit" value="Delete" name="delete"></select></form>'); 
if (isset($_POST["delete"])) 
{ 
    $sql = "DELETE 
      FROM users 
      WHERE name = '" . $_POST["deleteUser"] . "'"; 
    mysqli_query($connection, $sql); 

} 
?> 

我試着寫一個循環來生成選擇選項是這樣的:

<?php 

$sql = "SELECT name 
     FROM users"; 
$result = mysqli_query($connection, $sql); 

$users = array(); 

while ($row = mysqli_fetch_assoc($result)) 
{ 
    $users[] = $row["name"]; 
} 

echo ('</br><form action="" method="POST" style="display:inline!important"></br> 
     <select name="deleteUser">'); 

for ($i = 0; $i < count($users); $i++) 
{ 
    echo('<option value="' . $users[$i] . '">' . $users[$i] . '</option>'); 
} 

echo('<input class="w3-bar-item w3-button w3-hide-small w3-hover-green" type="submit" value="Delete"></select></form>'); 
if (isset($_POST["delete"])) 
{ 
    $sql = "DELETE 
      FROM users 
      WHERE name = '" . $_POST["deleteUser"] . "'"; 
    mysqli_query($connection, $sql); 

} 
?> 

但瀏覽器沒有按不會渲染它(例如Chrome),也許是因爲它不能在部分?喜歡等待循環完成,然後以表單的最後一部分結束。無論如何,我怎麼能使它工作?感謝隊友......

+0

你正在得到什麼錯誤? – lalithkumar

+1

也許試用foreach?像這樣'foreach(mysqli_fetch_assoc($ result)as $ val){echo'

+0

@小開發者是的。感謝您的建議,它的工作原理。 – udarH3

回答

2

而不是使用while循環中,您可以使用foreach這是你可以使用foreach的正確

下面是一個例子,可以幫助你

while ($row = mysql_fetch_assoc($result)) { 
    $rows[] = $row; 
} 
foreach($rows as $val){ 

    //Here populate your options like this 
    echo '<option> '.$val["name"].' </option' 
} 

希望這將幫助你:)

+0

希望它會,謝謝;) – udarH3

+0

請點擊刻度線按鈕批准這個答案是正確的,如果這對你有用,然後給一個upvote拇指:) –

+0

小開發者: - >閱讀此[鏈接](http://stackoverflow.com/questions/11621686/loop-mysql-fetch-assoc-using-foreach-instead-of-a-while-循環),然後編輯你的答案,之後,我將投票它 – udarH3