PHP:排序的MySQL结果到多维数组 [英] PHP: Sorting MySQL result to multi-dimensional array
本文介绍了PHP:排序的MySQL结果到多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现在我试着整理的MySQL结果通过到多维数组类型在SQL结果
行
所以,这是我的code:
函数getTableValues($ TABLE_NAME)
{
// $链接= connect_db();
$ front_end_query =SELECT * FROM`$表格名WHERE``type` ='front_end'。;
$ front_end_query_result =的mysql_query($ front_end_query); $ cur_row = 0;
/ *而($行= mysql_fetch_assoc($ QueryResult中))
{
$值= $行;
$ cur_row ++;
} * /
$ front_end = mysql_fetch_assoc($ front_end_query_result);
$ I = 0;
而($行= mysql_fetch_assoc($ front_end_query_result)){
#如果($行['类型'] ===front_end'){
#$线[$行[型] [$行['名'] = $行['值'];
#$线[$行[型] [$行['名'] ['递减'] = $行['说明'];
#$线[$行[型] [$行['名'] ['VISIBLE_NAME'] = $行['VISIBLE_NAME'];
#$线[$行[型] [$行['名'] ['write_roles'] = $行['write_roles'];
#$线[$行[型] [$行['名'] ['read_roles'] = $行['read_roles'];
#} $值['front_end'] [$行['名'] = $行;
$ I ++;
} 返回$价值;
}
和我的MySQL表:
ID类型write_roles read_roles名称值说明VISIBLE_NAME
1 front_end 0任何所有权sometitle exampletitle标题
2 front_end 0任何说明somedesc例子说明
这就是我想要得到什么:
$配置[(SOMETYPE)] [(SomeName)] =(行值)
$配置[(SOMETYPE)] [(SomeName)] [(SomeOption)] =(选项值)
例如: $配置['front_end'] ['标题'] ['说明']
的回报 exampletitle
我怎么能这样做?
UPD0:所以我试图回声
我的阵列的foreach
,它的返回的只是一个行的从我的数据库。
我做错了吗?
解决方案
$值=阵列(); //基本阵列
而($行= mysql_fetch_assoc($ front_end_query_result)){//获取行
//将基本阵列中创建下名称的新数组
$值[$行['名'] =阵列();
//为结果集中的每个项目,将其添加到新数组
的foreach($线为$关键=> $值){
$值[$行[名称] [$关键] = $价值;
}
}
Now I'm tryin' to sort MySQL result to multi-dimensional array by type
line in SQL
so, that's my code:
function getTableValues($table_name)
{
// $link = connect_db();
$front_end_query = "SELECT * FROM `".$table_name."` WHERE `type` = 'front_end'";
$front_end_query_result = mysql_query($front_end_query);
$cur_row = 0;
/*while ($line = mysql_fetch_assoc($queryresult))
{
$values = $line;
$cur_row++;
}*/
$front_end = mysql_fetch_assoc($front_end_query_result);
$i=0;
while ($line = mysql_fetch_assoc($front_end_query_result)){
#if ($line['type'] === 'front_end'){
# $line[$line['type']][$line['name']] = $line['value'];
# $line[$line['type']][$line['name']]['desc'] = $line['description'];
# $line[$line['type']][$line['name']]['visible_name'] = $line['visible_name'];
# $line[$line['type']][$line['name']]['write_roles'] = $line['write_roles'];
# $line[$line['type']][$line['name']]['read_roles'] = $line['read_roles'];
#}
$values['front_end'][$line['name']] = $line;
$i++;
}
return $values;
}
And my MySQL table:
id type write_roles read_roles name value description visible_name
1 front_end 0 any title sometitle exampletitle Title
2 front_end 0 any description somedesc example Description
And that's what I want to get:
$config[(someType)][(SomeName)] = (value of line)
$config[(someType)][(SomeName)][(SomeOption)] = (value of option)
E.g.: $config['front_end']['title']['description']
that returns exampletitle
How I can do that?
UPD0: so I tried to echo
my array with foreach
, and it's returned just one row from my DB.
What I doing wrong?
解决方案
$values = array(); //base array
while ($line = mysql_fetch_assoc($front_end_query_result)){ //fetch the rows
//in the base array create a new array under 'name'
$values[$line['name']] = array();
//for each item in the result set, add it to the new array
foreach ($line as $key => $value) {
$values[$line['name']][$key] = $value;
}
}
这篇关于PHP:排序的MySQL结果到多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文