2012-01-09 56 views
0

我已經走了很長的一段路,但我現在遇到了一個新問題。數據已正確發佈,但是當我嘗試查看編輯時,下拉菜單現在顯示 - 無 - 即使數據庫中顯示名爲「任何Kahl」。如果數據庫顯示 - 無 - 顯示下拉菜單,如果其他顯示數據輸入

下面的代碼是我正在使用的,我似乎無法理解爲什麼它不以正確的方式提取數據。任何幫助將不勝感激。

if ($row['fab1']=="--None--") 
{ 
    echo'<div id="fab1">'; 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user'); 
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab1'>\n"; 
    while($row = $result->fetch_assoc()) 
    { 
     echo "<option value='{$row['user']}'>{$row['user']}</option>\n"; 
    } 
    echo "</select>\n"; 
    echo '</div>'; 
} 
else 
{ 
    echo'<div id="fab1">'; 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user'); 
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab1'>\n"; 
    while($row = $result->fetch_assoc()) 
    { 
     echo "<option value='{$row['user']}'>{$row['user']}</option>\n"; 
    } 
    echo "</select>\n"; 
    echo '</div>'; 
} 

回答

1

如果你不裹在大括號中的代碼塊,if語句將只適用於第一行緊隨其後(在你的情況:echo'<div id="fab1">'),之後什麼將執行不管你語句評估爲true。

你應該換你的if語句在大括號:

echo '<div id="box4">'; 
echo '<h2>Fabricators</h2>'; 
if ($row['fab1']="--None--") 
{ 
    echo'<div id="fab1">'; 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user'); 
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab1'>\n"; 
    while($row = $result->fetch_assoc()) 
    { 
     echo "<option value='{$row['user']}'>{$row['user']}</option>\n"; 
    } 
    echo "</select>\n"; 
    echo '</div>'; 
} 
else 
{ 
    echo '<div id="fab1"><span class="b"></span><input type="text" name="fab1" size="20" value="' . $row['fab1'] . '" /></div>'; 
    echo '</div>'; 
} 
+0

非常感謝:)這是從網站學習的問題,http://www.w3schools.com/php/php_if_else.asp這個地方通常是正確的,但由於某種原因它沒有告訴我像你說的那樣封裝。儘管我認爲這很奇怪,但該網站從未讓我失望。 – 2012-01-09 19:40:57

+0

@MattRidge - 請請不要使用w3schools!他們充滿了虛假信息,這隻會讓你陷入困境。他們還沒有讓你失望的事實是不夠的。相信我,有一天你會被他們真正燒死! – 2012-01-09 20:02:39

+0

我已經瞭解到,但除此之外,還有其他地方可以去獲取排序信息嗎?我不介意問,但我的工作看到我有時會這樣做,他們認爲我在Facebook上,即使我沒有。 – 2012-01-09 20:10:14

1

您需要encapulate的,如果和其他人之間的語句。

這可以通過幾種不同的方式完成。

if (condition) : 
//statements if true 
else : 
//all other statements 
endif; 

if(condition){ 
//statements if true 
} 
else { 
//all other statements 
} 

你有它寫它只讀取第一行的方式後,如果作爲if語句的一部分。這就是爲什麼else語句是意外的。