gpt4 book ai didi

php - 如何避免基于 2 个表的重复 slug 并创建唯一的 slug

转载 作者:行者123 更新时间:2023-11-30 21:49:27 26 4
gpt4 key购买 nike

我在为一个私有(private)网站工作。我有 2 个表:

表 A(包含较旧的 slug)。

表 B(新 slug)。

这里的代码用于检查是否存在 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;
}
?>

为了检查存在的 slug,它将创建新的和独特的 slug;

  <?php  
$slug = $oslug;
$count = 1;
while (slug_exist($slug)) {
$slug =$oslug.'-'.$count++;
?>

My question, how to checking exist slugs from both tables (table A dan table B) and creating unique slugs which are not exist in both tables?

let me know if you are not sure what I'm taking about. Thanks!

最佳答案

创建一个 View AB,它是表 A 和 B slug 值的 UNION ALL。如果您无法创建 View ,您可以在 $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。

关于php - 如何避免基于 2 个表的重复 slug 并创建唯一的 slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915456/

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