我正在尝试从数据库中获取一些特定的键和值。我的数据库条目如下所示:
id | name | description | value
------------------------------------------
1 | lang | default language | en
2 | date | date format | YYYY-MM-DD
我想仅回显我的name
和value
字段。我尝试过使用嵌套的foreach循环,如下所示:
foreach($details as $key => $value)
{
foreach($value as $index => $row)
{
echo $index . " / " . $row . "<br />";
}
echo "<br />";
}
但那只是回声:
id / 1
name / lang
description / default language
value / en
id / 2
name / date
description / date format
value / YYYY-MM-DD
但是,当我添加偏移时,$index[1]
,我会将其设为a
而不是名称,或e
而不是description
。
我之前使用while
从mysql_fetch_array
循环开始工作,但这会给我一个重复的元素(比如<tr>
)而我只需要提取字段的值因为这将用于构建供用户管理的表单。
有人会有建议或不同方法让我做某事吗?
修改
查询来自类文件:
// extracted from my queries.class.php
public function my_prefs()
{
global $db;
$query = "SELECT * FROM preferences WHERE value!=NULL";
return $db->select($query);
}
// extracted from the source file
$module_details = $query->my_prefs();
编辑#2
也许这会帮助您了解我的需求:
foreach($module_details as $key => $value)
{
print_r($module_details);
}
返回:
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => lang
[description] => default language
[value] => en
)
[1] => stdClass Object
(
[id] => 1
[name] => date
[description] => date format
[value] => YYYY-MM-DD
)
}
我只需要访问lang
/ en
和date
/ YYYY-MM-DD
。
答案 0 :(得分:0)
也许我误解了这个问题......
但我相信您正在尝试从阵列中访问特定的列条目。您可以使用输出的键而不是使用数字索引来执行此操作。
foreach($details as $key => $value)
{
echo $value['name'];
echo $value['value'];
echo "<br />";
}
修改强>
如果您想限制查询的结果,那么您只需要替换所请求的字段:
$query = "SELECT * FROM preferences WHERE value!=NULL";
带
$query = "SELECT name, value FROM preferences WHERE value!=NULL";
答案 1 :(得分:0)
听起来你正在寻找这样的东西:
$tmp = array();
foreach($details as $key => $value)
{
// "name" => "value" dictionary later access
$tmp[$value["name"]] = $value["value"];
echo $value["name"] . " = " . $value["name"]; // echos e.q. "date = YYYY-MM-DD"
echo "<br/>";
}
echo $tmp["date"]; // echos e.q. "YYYY-MM-DD"
答案 2 :(得分:0)
终于得到了一些工作。这是我做的:
foreach($details as $row)
{
$name = $row->name;
$value = $row->value;
// In order to specify for checkboxes, select, radio, etc.
if($name == "lang")
{
// different info depending on the value
}
else
{
// do something generic here
}
}
可能不是最佳选择,但这就像我需要它一样。