我正在开发一个需要数据库的应用程序而且我遇到了一些问题,代码似乎很好但是当我有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:
数据库结构:
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;
答案 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);
}