我有一个包含以下数据的交易表:
dealID | date | followUP | user
1 |2012-10-15 | Yes |
2 |2012-12-24 | Yes |
3 |2013-01-05 | |
4 |2013-02-02 | Yes |
5 |2013-02-02 | Yes |
还有一个包含我的用户列表的用户表
userID | name
1 | john
2 | eric
3 | anne
我想做的是查询第一个将 followUP 设置为“YES”的表,然后从结果中按顺序从用户表中为他们分配一个用户,这样我的最终交易表将如下所示
dealID | date | followUP | userID
1 |2012-10-15 | Yes | 1
2 |2012-12-24 | Yes | 2
3 |2013-01-05 | |
4 |2013-02-02 | Yes | 3
5 |2013-02-02 | Yes | 1
我知道它是一个循环,但由于某种原因,我无法弄清楚如何设置第二个循环来分配用户的值。任何帮助将不胜感激。
最佳答案
首先将您的用户 ID 放入数组中,如下所示:
$uids = array(1, 2, 3);
然后,当从交易表中读取记录时,编写更新查询,如下所示:
$follow_up_user_idx = 0;
$update_queries = array();
while($row=mysqli_fetch_assoc($result)) {
// ... do whatever you need to
if($row['followUP'] != 'Yes') continue;
$update_queries[] = "UPDATE `deals` SET `user` = '" . $uids[$follow_up_user_idx] . "'
WHERE `dealID` = '" . $row['dealID'] . "' LIMIT 1";
$follow_up_user_idx++;
if($follow_up_user_idx > count($uids) - 1) $follow_up_user_idx = 0;
}
现在您已经有了所有更新查询。只需执行它们即可:
foreach($update_queries as $uq) {
mysqli_query($link, $uq);
}
关于php - 循环内循环以更新数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351445/