2013-04-25 81 views
2

我想要从我的下表中取出所有行,即date,我正面临一个问题。使用二维数组

id  name  username app  sdate edate 
=== =======  ======== ===  ===== ====== 
1  tanvir  tanvir  1  2012  2012  
2  Ranvir  Ranvir  1  2011  2013  
3  john  john  2  2011  2012  
4  Rakib  Rakib  1  2011  2012 

我用下面的MySQL查询:

$date = mysql_query("select * from `date`"); 
$date_row = mysql_fetch_array($date); 

但它只是返回一行。

如何将所有行放入二维数组中?

+0

[mysql_fetch_assoc](http://php.net/mysql_fetch_assoc)?你应该使用PDO,并且永远不要调用表'date',因为它是一个mysql函数。 – soyuka 2013-04-25 13:51:03

+3

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo 2013-04-25 13:51:23

+3

@soyuka这就是反引起的。 DERP。 – 2013-04-25 13:52:32

回答

11

嘛,当然这只是返回一行,这就是mysql_fetch_array做:

mysql_fetch_array - 获取一个结果行作为关联数组,数字数组,或二者

现在,要构建行的阵列,您只需遍历它们即可:

$all_rows = array(); 
while($row = mysql_fetch_assoc($date)) $all_rows[] = $row; 

注意我是如何在这里使用mysql_fetch_assoc。除非你特别需要数字和联想指标,否则你绝不应该使用mysql_fetch_array

0

尝试这种情况:

$date = getQueryData("select * from `date`"); 
function getQueryData($sQuery) 
{ 
    $result = mysql_query($sQuery); 
    $rows = Array(); 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $rows[] = $row; 
    } 
    @mysql_free_result($result);  
    return $rows; 
}