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

时间:2017-01-05 21:39:16

标签: php mysql sql mysqli querying

我有两张桌子,我称之为keylabel:key1 : valuelabel:value1 keylabel:key2 : valuelabel:value2 foo。每个表分别有一个主键barfoo_idbar_id中的每一行都可以是一个组的一部分,这是foo中的一行 - 认为委员会成员,每个成员可以在多个委员会,每个委员会可以有多个成员。我有一个可以称为bar的连接表,它只有两列(其中一列用于其他两个表的主键)和列表foo是哪一个栏的一部分:

foo_bar

这是我的PHP(由于我的webhost,我无法使用| foo_id | bar_id | | ------ | ------ | | test | res | | test | res2 | | --------------- | ):

$stmt->get_result()

现在,打印$stmt = $db->prepare("SELECT bar_id FROM foo_bar WHERE foo_id = ?"); $stmt->bind_param("s", "test"); $stmt->execute(); $stmt->bind_result($result); $stmt->fetch(); $stmt->close(); 给了我“res”。我怎样才能使我的结果成为$result foo所属的所有条形图?

SQL小提琴: http://sqlfiddle.com/#!9/2dfd2/1

2 个答案:

答案 0 :(得分:0)

您可以使用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。

答案 1 :(得分:0)

每个$ 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);