2011-08-26 39 views
0

我喜歡這個 -如何從MySQL通過PHP獲取如下數組?

event (id,name,date) 

表我需要設置這樣

$result = array(
    '1'=>array(
     array('id'=>2,'name'=>'foolball match','date'=>'2011-01-23'), 
     array('id'=>5,'name'=>'cricket match','date'=>'2011-01-27') 
    ), 
    '3'=>array(
     array('id'=>11,'name'=>'100 m run','date'=>'2011-03-12'), 
     array('id'=>27,'name'=>'Basket Ball','date'=>'2011-03-20'), 
     array('id'=>43,'name'=>'foolball match','date'=>'2011-03-29') 
    ) 
); 

這裏數組鍵的結果(1,3)表示月(一月,三月)。 活動將存儲在這些月份的數字鍵下。 這裏2失蹤,因爲在februry沒有事件。

任何人都可以幫我嗎?

+0

您可以嘗試使用'mysql_query'和朋友使用http://www.php.net/manual/en/function.mysql-fetch-array.php – Awea

回答

0

嘗試此

$result = array(); 
$year = 2011; 
$query = 'SELECT `id`, `name`, `date`, EXTRACT(MONTH FROM `date`) AS `month` FROM `event` WHERE EXTRACT(YEAR FROM `date`) = "' . $year . '" ORDER BY `date` DESC'; 
$res = mysql_query($query); 
while ($row = mysql_fetch_assoc($res)) { 
    $result[$row['month']][] = $row; 
} 
+0

避免,改用啓動[PDO] (http://www.php.net/manual/en/book.pdo.php)並準備了陳述。 –

+0

你是天才,你在一秒鐘內解決了我的問題。非常感謝... –

0

在結果中PHP設置獲取數據,循環,處理的時間值之後。

0
//assuming events are in this format 
$events = array(
    array('id'=>2,'name'=>'foolball match','date'=>'2011-01-23'), 
    array('id'=>5,'name'=>'cricket match','date'=>'2011-01-27'), 
    array('id'=>11,'name'=>'100 m run','date'=>'2011-03-12'), 
    array('id'=>27,'name'=>'Basket Ball','date'=>'2011-03-20'), 
    array('id'=>43,'name'=>'foolball match','date'=>'2011-03-29') 
); 

$result = array(); 
foreach ($events as $event) { 
    $month = (int)date('m', strtotime($event['date'])); 
    $result[$month][] = $event; 
} 
var_dump($result);