我有一个数据库,其中包含两种语言的一些按钮和图标的名称。 该表称为图标,它有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'];
}
我曾经搜查过是否有人在此之前遇到过这种情况,但是我找不到任何有用的信息,所以欢迎任何帮助。
由于
答案 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];
}