2014-02-16 28 views
0

这是我的数据库:PHP/MySQL的:取一个结果

database

这是查询:

SELECT * FROM用户

现在,当我这样做:

$query = $connection->query($_GET['query']); // SELECT * FROM users 
print_r($query->fetch_assoc()); 

我得到这个作为输出:

阵列( [ID] => 3 [用户名] =>卡雷尔)

为何不输出ID 4和用户名ccscs?

当我一个while循环:

whileloop

while($row = $query->fetch_assoc()){ 
    print_r($row); 
} 

回答

2

这是发生,因为你不给任何为了您的查询,以便它会自动获得一个记录。如果你想回到过去的记录,你可以通过ID递减顺序遵循

SELECT * FROM users ORDER BY id DESC 

如果改为需要检索你需要循环中的所有记录,把你的记录基于新的运算信息

while($row = $query->fetch_assoc()) 
{ 
    print_r($row); 
} 

我不会取两次,只有一次如下

$fields = array(); 
while($row = $query->fetch_assoc()) 
{ 
    print_r($row); 
    $fields[] = $row; 
} 
+0

这将返回最后一条记录,但我认为OP想要获取所有行。 –

+0

这就是为什么我放置两个解决方案 – Fabio

+0

我想显示每个结果。 – DazDylz

2

这是因为fetch_assoc()只是读取一行。

为了让每一行,你可以做这样的:

while($row = $query->fetch_assoc()){ 
    print_r($row); 
} 
+0

还有一条线:而($取= $ query-> fetch_assoc()){ \t \t \t \t \t \t \t print _r($取); \t \t \t \t \t \t} – DazDylz

+0

你是什么意思?你能告诉我们输出吗?如果你的意思是每一行都有单行是正常的。 – idmean

+0

http://i.imgur.com/BIZvLe1。png – DazDylz

2

fetch_assoc()从结果集中检索单个行。 See here

mysqli_result :: FETCH_ASSOC - mysqli_fetch_assoc - 从结果集中取得一行 作为关联数组

你应该使用这样的事情:

while($row = $query->fetch_assoc()){ 
    print_r($row); 
}