我需要更新tags
列,以便每个单元格都有如下内容:
2-5-1-14-5
或
3-9-14-19-23
或者simmilar(五个整数,范围从1-25)。
id
列不是从1-117连续的,但无论如何min id
是1和最大117.
$arr = [];
$str = '';
$id = 1;
for ($x = 1; $x <= 25; $x++){
array_push($arr, $x);
}
while ($id < 117) {
shuffle($arr);
array_splice($arr, 5, 25);
foreach ($arr as $el){
$str .= $el . '-';
}
$str = rtrim($str,'-');
$db->query("update posts set tags = '" . $str . "' where id = " . $id);
$id += 1;
}
我不确定如何描述最终结果,但似乎大多数单元格都被多次写入。
任何帮助?
答案 0 :(得分:1)
将我的评论合并为一段代码:
$full = range(1, 25);
$id = 1;
while ($id < 117) {
shuffle($full);
$section = array_slice($full, 0, 5);
$str = implode('-',$section);
$db->query("update posts set tags = '" . $str . "' where id = " . $id);
$id += 1;
}
因此我不再需要重置$str
,因为我已将implode()
插入其似乎正常运行的位置。其他代码可能会得到改进。
两个警告: