我有一个名为global_settings
的表,其中包含2列(field, value)
我需要一种方法来使每一行成为一个变量
所以例如:
我需要field = title
和value = hello
:
$title = 'hello';
我试过这样做:
$global_sql="SELECT * from global_settings ";
$global_rs=mysql_query($global_sql,$conn) or die(mysql_error());
while($global_result=mysql_fetch_array($global_rs))
{
$global_sql2="SELECT * from global_settings where field = '".$global_result["field"]."' ";
$global_rs2=mysql_query($global_sql2,$conn) or die(mysql_error());
$global_result2=mysql_fetch_array($global_rs2);
$global_result2["field"] = $global_result2["value"];
}
但这没用 - 任何想法?
答案 0 :(得分:4)
我强烈建议您不要从数据库中自动创建变量。您将使用可能无用的变量乱丢脚本的命名空间,并且可能会覆盖您想要保持独立的其他变量。按原样执行 - 将设置存储在数组中。
另外,除非我完全误读你的代码,否则绝对没有理由进行子查询。一个简单的:
$settings = array();
$sql = "SELECT field, value FROM settings"
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$settings[$row['field']] = $row['value'];
}
只需抓取所有设置即可。
答案 1 :(得分:0)
此行不会创建以field
的值命名的变量。
$global_result2["field"] = $global_result2["value"];
您可以创建一个数组变量,例如:
$array_of_results[ $global_result2["field"] ] = $global_result2["value"];
这样您将拥有以下数组:
[ 'field' => 'value' ]