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);