如何使用php从mysql数据库中获取具有相同字段值的多行

时间:2013-09-19 18:50:41

标签: mysql php

|touser| fromuser |  msg  |
|  A   |    B     | hi    |
|  A   |    B     | hello |
|  C   |    D     | bye   |
|  C   |    E     | hey   |

当我在mysql workbench中使用以下查询时,它显示了所有具有给定名称的行的结果:

select * from db.table1 where touser in ('A');

输出:

|touser| fromuser |  msg  |
|  A   |    B     | hi    |
|  A   |    B     | hello |

但是当我从php命令传递查询时,结果数组只包含第一个记录

<?php
 //connection establishing commands
 $sql="select * from db.table1 where touser in ('A')";

 $result=mysqli_query($link, $sql);

 $data=mysqli_fetch_array($result,MYSQLI_NUM);

 print_r($data);

 //other stuff;
 ?>

输出:

    Array ( [0] => A [1] => B [2] => Hi )

我在php命令中遗漏了什么吗?

1 个答案:

答案 0 :(得分:2)

你是PHP只是返回MySQL结果集的第一行。

您需要替换$data=mysqli_fetch_array($result,MYSQLI_NUM);

while ($data = mysqli_fetch_array($result, MYSQLI_NUM)) {
    print_r($data);
}

将迭代结果集的每一行。换句话说,mysqli_fetch_array函数不会将整个结果集作为数组获取,它只返回一行,然后将行“指针”移动到下一行。