从mysql db创建动态变量

时间:2014-05-04 07:29:54

标签: php mysql

我有一个数据库,其中包含两种语言的一些按钮和图标的名称。 该表称为图标,它有4个字段(id,abbr,lang1,lang2),其中abbr是我想要创建的变量的名称,如果语言设置为lang1则将单元格lang1分配给变量。

表格示例:

id    abbr        lang1         lang2
-----------------------------------------------   
1     air    AirConditioner    Condizionatore
2     pool   Pool              Piscina

我知道我可以用那样的东西做到这一点

foreach (array('wifi','fridge','air','balcony','kitchen','tv','bathroom','pool') as $varname) {
 if ($$varname==1) 
{ 
SQL Select to get the information for each field
}

但我认为如果我能动态地执行此操作会更好,以防我在表格中添加其他行

期望的结果是为每行自动创建这样的内容

if ($lang==lang1)
{
$air=$row['lang1'];
$pool=$row['lang1'];
}
else
{
$air=$row['lang2'];
$pool=$row['lang2'];
}

我曾经搜查过是否有人在此之前遇到过这种情况,但是我找不到任何有用的信息,所以欢迎任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

我能想到的最简单的动态方式是,您可以查询所需的abbr,然后将$lang变量作为选择器传递,以选择所需语言的列,具体取决于您的代码你可以这样做:

${$row['abbr']}=$row[$lang];

答案 1 :(得分:1)

如果我的意思是右$lang是1或2,则此代码可能有所帮助。

$language = 'lang'.$lang; // creates lang1 or lang2

$result = mysql_query("SELECT * FROM icons;");
while ($row = mysql_fetch_assoc($result))
{
    $varname = $row['abbr'];
    $$varname = $row[$language];
}