我有fallowing数据库表'table_name':
+----+---------+--------------+
| ID | user_id | meta_key1 |
+----+---------+--------------+
| 1 | 1 | d |
| 2 | 1 | f |
| 3 | 1 | c |
| 4 | 2 | g |
| 5 | 3 | 1 |
| 6 | 3 | 2 |
| 7 | 4 | 4 |
| 8 | 4 | 5 |
| 9 | 4 | 5 |
| 10 | 4 | 5 |
+----+---------+--------------+
我想从user_id ='1'的所有条目中选择*。
我现在使用的代码只返回第一个值:
$query = mysql_query("SELECT * FROM table_name WHERE user_id='1'");
$row = mysql_fetch_assoc($query);
while($row){
return $row["meta_key1"];
}
结果始终是table_name中user_id ='(given_id)'的第一个条目:
d
虽然我想要这个结果:
d
f
c
答案 0 :(得分:5)
你需要在循环中不断获取一行来获取结果中的每一行,类似于:
while( $row = mysql_fetch_assoc($query)){
echo $row["meta_key1"];
}
由于您正在执行return $row['meta_key1']
,因此只要获取第一行,该函数就会返回一个值。因此,如果您在函数中使用它,则需要构建一个数组来获取所有值:
$return = array();
while( $row = mysql_fetch_assoc($query)){
$return[] = $row["meta_key1"];
}
return $return;
答案 1 :(得分:1)
将您的代码更改为:
while($row = mysql_fetch_assoc($query);){
echo $row["meta_key1"];
}
目前,您只能拨打mysql_fetch_assoc
一次。
每次需要下一行时都需要调用它。