2011-04-28 42 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