mysql_fetch_array只有当有更多时才显示1行

时间:2012-01-10 20:57:31

标签: php mysql

我正在开发一个需要数据库的应用程序而且我遇到了一些问题,代码似乎很好但是当我有2时它只打印1行,我已经测试了当我有5并且我仍然得到1。

我想做的是制作所有item_id的数组;我知道我现在正在获得所有领域,但那只是为了测试。

的index.php:

<?php

mysql_connect('localhost', 'aaran', '*********');
mysql_select_db('aaran_aff_io');

$query = mysql_query("SELECT * FROM `items` WHERE `owner`='aaranmcguire'");
$results = mysql_fetch_array($query);

echo '<pre>';
print_r($results);

?>

DB:

SQL DB

数据库结构:

CREATE TABLE `items` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `item_id` int(11) NOT NULL,
  `name` varchar(55) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `thumbnail` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `owner` varchar(55) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

3 个答案:

答案 0 :(得分:10)

mysql_fetch_array一次只返回一行。如果您希望将所有行放入数组中,则可以遍历结果集:

$query = mysql_query("SELECT * FROM `items` WHERE `owner`='aaranmcguire'");
$rows = array();
while ($row = mysql_fetch_array($query)) {
    $rows[] = $row;
}

echo '<pre>';
print_r($rows);

答案 1 :(得分:1)

查看mysql_fetch_array的手册。当它被调用时,它返回下一行。

while ($row = mysql_fetch_array($result)) {
    print_r($row);
}

答案 2 :(得分:0)

mysql_fetch_array()一次只返回一行,因此必须使用while循环迭代所有行。

while($row = mysql_fetch_array($query)) {
    echo '<pre>';
    print_r($row);
}