$sql = "select id from table_name ";
$result = mysql_query($sql);
$data = array();
while($row = mysql_fetch_assoc($result))
{
$data[] = $row[id];
}
/ * $ data包含从db.now的sql查询中获取的id我希望将$ id数组中的id(值数组)一个接一个地传递给where条件下的select查询,并获得每个id的所需结果。我的问题是如何将值数组传递给下面的select语句我不知道该怎么做。非常感谢任何帮助。* /
$query = "select * from table where id1 = $data[] ";
答案 0 :(得分:1)
$query = "select * from table where `id1` in (" . implode(', ', $data) . ")";
答案 1 :(得分:1)
您应该在Moodle中使用名为get_in_or_equal()
的跨数据库功能list($where, $params) = $DB->get_in_or_equal($data, SQL_PARAMS_NAMED);
$sql = "SELECT *
FROM {table}
WHERE $id {$where}"
$records = $DB->get_records_sql($sql, $params);
答案 2 :(得分:0)
您可以使用IN
子句。
当您完全确定$data
数组中只有数值时。您可以执行以下操作:
$query = "select * from table where id1 IN(" . implode(',', $data) . ")";
答案 3 :(得分:0)
您可以使用:
$comma_separated = implode(",", $data);
if ($comma_separated != "")
$query = "select * from table where id1 IN($comma_separated)";