Php 如何选择键为常量的多个键/值对?

Php 如何选择键为常量的多个键/值对?,php,mysql,sql,mysqli,querying,Php,Mysql,Sql,Mysqli,Querying,我有两个表,我称之为foo和bar。每个表分别有一个主键,foo\u id和bar\u id。foo中的每一行都可以是一个组的一部分,这是bar中的一行-想想委员会中的成员,每个成员可以是多个委员会的成员,每个委员会可以有多个成员。我有一个连接表,可以称为foo\u bar,它只有两列(其他两个表的主键各一列),并列出哪个foo是哪个条的一部分: | foo_id | bar_id | | ------ | ------ | | test | res | | test | re

我有两个表,我称之为
foo
bar
。每个表分别有一个主键,
foo\u id
bar\u id
foo
中的每一行都可以是一个组的一部分,这是
bar
中的一行-想想委员会中的成员,每个成员可以是多个委员会的成员,每个委员会可以有多个成员。我有一个连接表,可以称为
foo\u bar
,它只有两列(其他两个表的主键各一列),并列出哪个foo是哪个条的一部分:

| foo_id | bar_id |
| ------ | ------ |
|   test |    res |
|   test |   res2 |
| --------------- |
这是我的PHP(由于我的Web主机,我无法使用
$stmt->get_result()
):

现在,打印
$result
会给我“res”。如何使我的结果成为
test
foo所属的所有条


sqlfiddle:

您可以使用
mysqli
类似的东西:

$mysqli = new MySQLi(SERVER, USERNAME, PASSWORD, DATABASE);  

$query = $mysqli->query("SELECT bar_id FROM foo_bar WHERE foo_id = 'test'");

  while ($row = $query->fetch_assoc()) {
                $results[] = $row;
            }

$results
将具有foo id等于“test”的所有条形id。

您正在为$stmt-fetch()的每个调用绑定参数

再次调用$stmt->fetch()(在$stmt->close()之前),$result将为“res2”

您可以在循环中执行此操作,并将所有$result放入一个数组中

或者,你也可以这样做

$result = $stmt->get_result();
$rows = $result->fetch_all(MYSQLI_ASSOC); 
$rows将是查询中作为关联数组的所有结果行。然后可以将其映射到数组

function getBarID($row) {
  return $row["bar_id"];
}

$bar_ids = array_map("getBarID",$rows);

请参见
fetch
仅返回一行,将其放入while循环以获取其他行。有关更多信息,请参阅。@dstudeba谢谢,成功了。
function getBarID($row) {
  return $row["bar_id"];
}

$bar_ids = array_map("getBarID",$rows);