2013-03-07 27 views
0

我想就如何协商,最好做到以下几点:单一的PHP行内关联数组

我有我想插入我的MySQL数据库作为数组一定的首要价值,可以说这是父母。现在

array(parent1,parent2,parent3,parent4); 

,那些父母有一个或多个孩子每个,例如:

parent1 => child1, 
parent2 => child1,child2,child3, 
parent3 => child1, child2, child3 

等...

我就不得不在其中添加父并在此之后的表单一个被添加,你可以添加X个孩子。

那么最好的办法是处理这种情况,我想这将需要一个关联数组,可能有人请给我一个建议,使用PHP和MySQL。

+0

GROUP_CONCAT可以在mysql中做到这一点,但至少发布一些相同的数据和模式,让别人尝试 – 2013-03-07 11:00:25

+3

不要这样做....否则,你问的下一个quastion将是如何使用部分条目上的匹配进行搜索 - normalize你的数据库 – 2013-03-07 11:06:28

+0

你是什么意思归一化? – durian 2013-03-07 11:20:25

回答

0

你可以让一个数组,看起来像这样:

$arr = array(
    'parent1' => array('child1'), 
    'parent2' => array('child1', 'child2'), 
    'parent3' => array('child1', 'child2', 'child3') 
); 
// Debugging... 
var_dump(array_keys($arr)); // These are the parents 
var_dump(array_values($arr)); // And these are their children 

然后插入:

var_dump('INSERT INTO `parents` (`name`) VALUES ("'.implode('"), ("', array_keys($arr)).'");'); // These are the parents 
foreach ($arr as $parent => $children) 
    var_dump('INSERT INTO `children` (`parent_name`, `name`) VALUES ("'.$parent.'", "'.implode('"), ("'.$parent.'", "', array_keys($children)).'");'); // These are the children 

变化var_dump()您用来运行查询相应的方法。