我正在为一个私人网站工作。我有2张桌子:
表A(包含较旧的slu))。
表B(新slu))。
这里用于检查的代码存在slug并从表B创建唯一的slug(单表查询),这运行良好
<?php
$target = "SELECT COUNT(`slug`) FROM `table B` WHERE `slug`='$slug'";
$query= mysqli_query($kkdb, $target);
$row = mysqli_fetch_row($query);
return ($row[0] == 1) ? true : false;
}
?>
检查存在的slu will它将创造新的和独特的slug;
<?php
$slug = $oslug;
$count = 1;
while (slug_exist($slug)) {
$slug =$oslug.'-'.$count++;
?>
我的问题是,如何从两个表中检查存在的slu((表A dan表B)并创建两个表中不存在的唯一slug?
如果你不确定我正在采取什么,请告诉我。谢谢!
创建一个视图AB,即表A和B slug值的UNION ALL。如果您无法创建视图,则可以在$ target中使用UNION ALL语法。
也就是说 - 你需要调整返回断言,因为你可以返回2的计数,即使slug作为两个表中的主键存在。
return ($row[0] >= 1) ? true : false;
编辑 - “查看AB”的说明:
说你有
TableA(slug varchar(100)主键)和TableB(slug varchar(100)主键)
然后
CREATE VIEW ViewAB AS
SELECT a.slug FROM TableA a
UNION ALL
SELECT b.slug FROM TableB b;
而不是你的PHP代码引用TableA或TableB,让它引用ViewAB。