gpt4 book ai didi

mysql - 使用一组选择最佳方法的结果插入行

转载 作者:行者123 更新时间:2023-11-29 23:00:08 25 4
gpt4 key购买 nike

我的数据库中插入了一组标签,我需要将它们插入另一个具有 itemIDtagID 的表中。

问题是我没有 tagID - 相反,我有一个带有名称的 TagName 。我需要获取 tagID 以便之后可以插入它,但我想知道这是否可以在一个查询中实现。

我的意思是搜索名称,然后获取其tagID,然后将其插入数组,甚至可以一一插入。

最佳答案

如果我理解你的意思,我的方法是:先创建两个表。如果您知道更好的方法,请告诉我。

表格标签

id关键字

表C_Tag

id tag_id user_id

外键Tag(id)引用C_Tag(tag_id)

<?php
$tag=$_POST['tag_name'] //get the tag name
$current_user=$_POST['users_id'];// get the current user id
include 'db_tag.php';

$stmt = $db->prepare("SELECT keyword, id FROM Tag WHERE keyword = :tag ");

$stmt->bindParam(':tag', $tag);
$stmt->execute();
$row_tag = $stmt->fetchALL(PDO::FETCH_ASSOC);
foreach ($row_tag as $row_tag){
}

//if the keyword exist, only update the C_Tag table
if ($row_tag['term'] == $tag){
$stmt = $db->prepare("SELECT t.id, t.keyword, ct.tag_id, ct.user_id FROM Tag t , C_Tag ct WHERE t.id=ct.tag_id ");
$stmt->bindValue(':current_id',$current_user);
$stmt->execute();
$row = $stmt->fetchALL(PDO::FETCH_ASSOC);
foreach ($row as $row){

}

$row_id=$row['id'];
$row_tag_id=$row['tag_id'];
$row_user_id=$row['user_id'];

if( $current_user == $row_user_id && $row_id == ! $row_tag_id ){
//make sure same user cannot enter duplicate keyword
$stmt = $db->prepare ("INSERT INTO C_Tag (user_id, tag_id)
SELECT :current_id, id
FROM tag
WHERE keyword=:keyword
");
$stmt->bindValue(':current_id',$current_user);
$stmt->bindValue(':keyword', $tag);
$stmt->execute();
}
} else {
//if the keyword is new, I will insert it into both table
}

?>

关于mysql - 使用一组选择最佳方法的结果插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532950/

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