2012-10-24 146 views
0

我當前已創下了死衚衕與我的編碼,我重寫代碼大塊是與存儲在數據庫中都更改網站廣泛的選擇,也同樣用於應用個人用戶帳戶的權限。動態變量

在設置頁面上,我有各種設置存儲在數據庫中,我想從數據庫中檢索以形成我的頁面,檢索結果然後填充每個單獨設置的選擇框,並將其顯示爲「已啓用」或「已禁用」,因爲大多數的設置是0或1

我的問題是,什麼是從數據庫中獲取數據,並創建動態的變量,然後在我的設置頁面中使用的最佳方法?該表的結構是:id | setting_name | setting_value。我只需要setting和value,如果在while循環中生成的每個變量如下所示,我希望它;

setting_name = setting_value;

是這樣,那麼我可以使用該變量來填充我的選擇框。

$sql_query = mysql_query("SELECT * FROM `setting`"); 
while($row = mysql_fetch_assoc($sql_query)) 
{   
$row['name'] = $row['value']; 
} 

我認爲上面的代碼可以工作,但該變量永遠不會被創建。

感謝您的幫助,

+1

請不要使用'mysql_ *'函數來編寫新的代碼。他們不再被維護,並且社區已經開始[棄用流程](http://goo.gl/q0gwD)。請參閱 [紅盒子](http://goo.gl/OWwr2)?相反,您應該瞭解[準備好的 聲明](http://goo.gl/orrj0)並使用[PDO](http://goo.gl/TD3xh)或[MySQLi](http://in3.php達網絡/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/YXyWL)會幫助你。 如果你選擇PDO,[這裏是很好的教程](http://goo.gl/b2ATO)。 另請參閱[爲什麼不應該在PHP中使用mysql函數?](http://goo.gl/J5jAo) –

+0

在新應用程序中不使用mysql_query非常重要。如果你繼續走下去,你很可能會陷入嚴重的困境。 – tadman

+0

@NullPointer感謝您的提醒,我一次又一次地在這裏看到它,我想最終做一些事情。對於完成70%的項目,您會推薦什麼?它始終使用mysql_ *,所以我不確定要做什麼來切換。謝謝如果你使用數據庫同一類比你不需要做更多的工作,否則做一個類,並使用 –

回答

2

還有一個$:$$row['name'] = $row['value']

+0

就這麼簡單?非常感謝你,我不能相信這是簡單的,謝謝你一堆! –

+0

@JakeBall你很容易與$$? –

+0

你最好把它們放在一個數組中。採用上述方法,您可能會覆蓋頁面上的其他變量。 –

2

你想這樣做:

${$row[name]} = $row[value]; 

此外,要停止使用mysql_功能,因爲它們是being deprecated。您應該使用mysqli_PDO函數。

+0

謝謝,這就是我正在尋找的仍然不能相信它是如此簡單。我目前正在考慮轉向PDO,但它似乎要複雜得多。但是,感謝您的回答,我會在未來的項目中考慮實施PDO,甚至可能會將此項目轉換爲它! –

+0

@JakeBall它更復雜,但你只需要弄清楚一次。之後,它變得更好。 – Sammitch