2011-04-28 38 views
0

伙计们,美好的一天。即时通讯开始学习MySQL,仍然摆弄。我刚刚看到一个表格结构就像这个例子。我如何在SQL中使用var_dump实现在数组中查询数组?更多的权力!Mysql新手:sql select问题

Table: categories 
id | name | 
1 | Cat A | 
2 | Cat B | 

Table: sub_categories 
id | category_id | name  | 
1 |  1  | Sub Cat A | 
2 |  2  | Sub Cat B | 

array 
    'Cat A' => 
     array 
     1 => string 'Sub Cat A' (length=9) 
    'Cat B' => 
     array 
     2 => string 'Sub Cat B' (length=9) 
+0

你在寻找一个特定的查询,或者是以数组的形式返回结果吗? – Steve 2011-04-28 11:11:14

+0

你究竟在看什么/要求什么?将数组保存到mysql的简单方法? (所以unserialize($ array)就是这样(快而脏))或者你在寻找一个insert语句来将数组写入这两个表中?你正在使用什么存储引擎? – 2011-04-28 11:13:56

回答

2

你必须遍历你的类别表,然后选择这个类别中的所有行并填充你的数组。

你也可以使用JOIN像在下面的例子中(离开了那里的一部分,如果你想所有类别):

$result = mysql_query("SELECT categories.name as catname 
    , categories.id as catid 
    , sub_categories.id as subcatid 
    , sub_categories.name as subcatname 
    FROM categories 
    LEFT JOIN sub_categories ON sub_categories.category_id = categories.id 
    WHERE categories.id = 1"); 

$rows = mysql_fetch_object($result); 
$result = array(); 
foreach($rows as $row) { 
    $result[$row->catname][] = array(
    'id' => $row->subcatid, 
    'category_id' => $row->catid, 
    'name' => $row->subcatname 
); 
} 

var_dump($result); 

UNTESTED但应该工作。

+0

你好Rufinus!感谢您的及时回应。我会试试这个。 :) – 2011-04-29 01:27:14

+0

'htmlspecialchars()'没有在他的代码中调用 - 也许它在你的代码中的其他东西? – 2011-04-29 04:09:49

+0

它的工作原理!谢谢! – 2011-05-03 06:43:26