gpt4 book ai didi

php - 具有 2 个变量的循环 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 01:38:10 25 4
gpt4 key购买 nike

我有一个包含 3 个字段的表(标签),activityID、placeID、tagID(以及第 4 个,ID 作为 PKey)。我想使用 2 个数组(一个位置和一个标签)搜索此表。对于每场比赛,我都想返回 activityID。然后我想在另一个表(事件)中使用这个 activityID 列表,其中每个列表都具有相同的 PlaceID 数组。我开始把它作为循环放在一起,但我看到很多事情都说不要那样做。我在想我需要使用临时表,但这也可能不是必需的。无论如何,我也在努力用循环来做这件事,而不是努力去做一些不好的事情,我想我会发布一般的想法,看看是否有人能指出我正确的方向......这段代码不是工作但显示了总体思路..编辑...我只是想解决第一部分中的循环,第二部分我需要作为循环离开

$places = array("London","Madrid","Paris","Rome"); 
$tags = array("Shopping","Sight","Bar","Club");
$num_places = count($places);
$num_tags = count($tags);

/* I want to remove the loop from this section */
$counterP = 0;
while($counterP <= ($num_places)) {
$counterT = 0;
while($counterT <= ($num_tags)) {
$conn->query('INSERT INTO temp (activityID)
SELECT activityID, placeID
FROM tags
WHERE placeID = "'.$place[$counterP].'" AND tagID = "'.$tag[$counterT].'"');
$counterT++;
}
$counterP++;
}

/* This section will stay in a loop */
$counterP = 0;
while($counterP <= ($num_places)) {
$sql_interests = 'SELECT a.summary, a.image, a.link
FROM activity a
LEFT JOIN temp t
ON t.activityID = a.activityID
WHERE a.placeID = "'.$place[$counterP].'"';

$interests = array();
$interests_result = $conn->query($sql_interests);
if ( !empty($interests_result)) {
while($interests_row = $interests_result->fetch_assoc()) {
$interests[] = array($interests_row["summary"],$intersts_row["image"],$interests_row["link"]);
}
/* do stuff with data */
}
$counterP++;
}

最佳答案

mysql唯一的方法。 where 子句使用 in 子句过滤标签,连接将您带到事件表。 at 只是方便阅读或懒惰(比如我)的别名

select a.* 
from activity a
join tags t
on t.activityID=a.activityId
where t.tagID in ('sightseeing','parks')
and t.placeID in ('Istanbul','Paris');

+----+------------+---------+---------------------------+
| ID | activityID | placeID | summary |
+----+------------+---------+---------------------------+
| 4 | 444 | Paris | See Arc D'Triumph |
| 6 | 666 | Paris | See Eifel Tower |
| 8 | 888 | Paris | Walk through Central Park |
+----+------------+---------+---------------------------+
3 rows in set (0.01 sec)

关于php - 具有 2 个变量的循环 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com