2012-03-09 27 views
0

我剛剛學習PHP,並且在這方面搜索了一段時間,但是恐怕我可能不知道如何提問,所以解釋可能會起作用最好。基本上我有一個由/ count查詢返回3條記錄。將查詢中的數值結果分配給數組中的文本

Status Total 
    0   2 
    1   3 
    2   2 

在我的網頁我想顯示:

Status   Total 
Dev    2 
Active   3 
Arch   2 

所以我基本上只是想將值0,1和2分配給文本值。我已經嘗試創建一個數組,然後將返回數字字段分配給數組。

$_status = array(0 => 'Development', 1 => 'Production', 2 => 'Archive'); 

while($rowStat = mysql_fetch_assoc($resDev)) 
{ 
    echo "<tr><td>$_status[$rowStat['status']]</td><td>{$rowStat['devprojects']}</td></tr>"; 
}; 

任何幫助,非常感謝。

謝謝。

+0

在開發你應該把錯誤報告提高到'E_ALL'。這會告訴你,關鍵的「狀態」不存在(因爲它實際上是一個大寫字母S的「狀態」)。 – Crashspeeder 2012-03-09 16:40:50

回答

0

我真的不喜歡使用0, 1,2代表一個命名值(除非你有一個關係)表中的數據庫...但使用你的設置,爲什麼不只是使用:

while($rowStat = mysql_fetch_assoc($resDev)){ 
    switch($rowStat['Status']){ 
     case 0: 
      echo "<tr><td>Development</td><td>{$rowStat['devprojects']}</td></tr>"; 
     break; 
     case 1: 
      echo "<tr><td>Production</td><td>{$rowStat['devprojects']}</td></tr>"; 
     break; 
     case 2: 
      echo "<tr><td>Archive</td><td>{$rowStat['devprojects']}</td></tr>"; 
     break; 
    } 
}; 

編輯

有些人真的在尋找複製粘貼答案,所以這裏是一個更新的答案,因爲軍士。 Massively Anal Society的Crashspeeder扭轉了她的內褲。

創建查找數組引用對抗狀態標識:

$statusArray[0] = 'Development; 
$statusArray[1] = 'Production; 
$statusArray[2] = 'Archive; 

然後,當你運行你的mysql_fetch_assoc()循環,你可以參考statusArray查找,像這樣:

while($rowStat = mysql_fetch_assoc($resDev)){ 
    echo "<tr><td>{$statusArray[$rowStat['Status']]}</td><td>{$rowStat['devprojects']}</td></tr>"; 
} 
+0

代碼重複太多。如果唯一改變的是該行第一列的內容,那麼沒有理由重印整個內容。另外,你沒有修正這個錯誤,這是'status'中的小寫'S'。它應該是一個大寫S的「狀態」。你的代碼仍然不起作用。 – Crashspeeder 2012-03-09 16:42:24

+0

這工作。我應該在表中指定狀態字段被稱爲「狀態」(全部小寫)。在我的例子中,我有「狀態」,這就是我在我的頁面上的表格視圖中指定的內容。有沒有辦法做這個數組呢? – Justin 2012-03-09 16:47:28

+0

「$ _status」是我試圖創建的數組,用於分配表中變量的值。 – Justin 2012-03-09 16:49:18

1

,你可以在這裏看到http://php.net/mysql_fetch_assoc字段名稱是區分大小寫的

從我在你的桌子,看樣的領域被稱爲「狀態」

和您正在使用「狀態」

你可以嘗試改變

$rowStat['status'] 

$rowStat['Status'] 

編輯:

答案的最初版本只專注於什麼問題(和建議PDO) 我只想補充一點,我同意在這裏發現的另外兩個optinions:通過註釋添加到一個 這個答案由喬治:你應該只使用小寫字母名稱爲您的數據庫字段;還應該考慮使用表名作爲前綴(product_id替代或id,user_password而不是密碼),主要有兩個原因:避免在使用連接訪存結果時出現變形,並避免與mysql保留字(如id,password和狀態)

另一種,通過對問題的評論通過Crashspeeder建議:你一定要與錯誤發展報告和禁用直播服務器

+2

您可能想要將字段名稱更改爲小寫。按照約定,變量和sql列/表/數據庫名稱都以小寫字母寫。例外是;類變量($ camelCase)和帶有多個單詞的$ php變量($ seperated_by_underscore)。 – giorgio 2012-03-09 16:40:01

+0

@giorgio非常好的補充..一件事..使用下劃線分隔的php變量似乎並不是一個例外:)數據庫字段也應該有多個詞並且下劃線(在我看來)是將它們分開的最好方法 – mishu 2012-03-09 16:42:54

+0

大聲笑:你是完全正確的,這是一個除了一個例外,但是,我想op得到我的意思;)是的,我同意,多字字段/數據庫字段名稱也應該用下劃線分隔! – giorgio 2012-03-10 12:46:42

相關問題