gpt4 book ai didi

php - 尝试在两个不同数据库中的两个表之间找到至少一个相似性

转载 作者:行者123 更新时间:2023-11-29 22:36:16 25 4
gpt4 key购买 nike

我想做的是寻找两个数据库之间至少有一个相似之处。一个数据库称为criteria。另一个称为租户

Criteria 中的表格内有 10 列。 Tenant 中的表内有 10 列。

如果您是租户并想要查找从业主处出售的特性,我们必须查看租户和业主之间是否至少有一项相似之处。

如果您是租户,其中主键是用户名,可以说 john。那么,为了让 john 能够与想要出售其房屋或属性(property)的业主相匹配,john 必须与业主至少有一项相似之处。如果他这样做了,我们就会进入业主数据库并显示待售特性。

这是到目前为止我正在尝试做的事情的 php。不是很多我有一个名为 ad 的数据库,其中包含业主出售的特性:例如 Database_name(Ad) -> table_name(注册用户的名称)-> 每个用户都将其属性保存在该表中。

另一个数据库称为 Criteria:这里是可能想要出租其特性的人的用户偏好。Database_name(Criteria) -> table_name(注册用户的)->有 10 列,名称如下:用户名、首租、职业、年龄、租户性别、收入、历史记录、地址、吸烟者、宠物。我的最后一个数据库称为租户:这里有与 Criteria 数据库相同的列。如果此租户与 Criteria 中的任何表之间存在匹配,则会进入广告数据库并显示该用户属性。显示完所有内容后,它会继续搜索至少具有一项相似性的其他表,以显示属性。

  <?php
$db = mysqli_connect("localhost", "root", "root", "ad");
$query = "SELECT * FROM $username where adtype = 'offer'";
$result = mysqli_query($db, $query) or die(mysql_error());

$criteria = mysqli_connect("localhost", "root", "root", "Criteria");
$querycriteria = "SELECT * FROM tenantcriteria WHERE username = '$username'";
$resultcriteria = mysqli_query($criteria, $querycriteria) or die(mysql_error());

$tenant = mysqli_connect("localhost", "root", "root", "Tenant");
$querytenant = "SELECT * FROM preference WHERE username = 'john'";
$resulttenant = mysqli_query($tenant, $querytenant) or die(mysql_error());




$queryall = "SELECT t.*
FROM $criteria.tenantcriteria AS t
JOIN $tenant.preference AS p
ON 't.firstrent' = 'p.firstrent' OR 't.occupation' = 'p.occupation' OR 't.age' = 'p.age'
OR 't.gender' = 'p.gender' OR 't.income' = 'p.income' OR 't.history' = 'p.history'
OR 't.address' = 'p.address' OR 't.smoker' = 'p.smoker' OR 't.pet' = 'p.pet'
WHERE 'p.username' = '$username'";
?>

基本上我的问题是如何将 1 个表(在一个数据库中)与多个表(在另一个数据库中)进行比较并至少找到相似性。如果发现至少一个相似之处,它就会停止并显示该所有者出售的所有属性(property)。我希望我说得清楚。

最佳答案

这样的事情会找到与给定租户至少有一个相似之处的所有业主,然后列出他们的所有属性(property)。第一个查询获取其条件与给定租户相似的所有所有者名称。然后,它循环访问这些结果,以获取 Ad 数据库中这些表的所有属性。

$conn = mysqli_connect("localhost", "root", "root");
$sql = "
SELECT t.username
FROM Criteria.tenantcriteria AS t
JOIN Tenant.preference AS p
ON t.firstrent = p.firstrent OR t.occupation = p.occupation OR t.age = p.age
OR t.gender = p.gender OR t.income = p.income OR t.history = p.history
OR t.address = p.address OR t.smoker = p.smoker OR t.pet = p.pet
WHERE p.username = ?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $ownername);
while (mysqli_stmt_fetch($stmt)) {
$owner_sql = "SELECT prop_name FROM Ad.`t.$ownername` WHERE adtype = 'offer'";
$owner_stmt = mysqli_prepare($conn, $owner_sql);
mysqli_stmt_execute($owner_stmt);
mysqli_stmt_bind_result($owner_stmt, $prop_name);
while (mysqli_stmt_fetch($owner_stmt)) {
echo "$ownername $prop_name<br>\n";
}
}

关于php - 尝试在两个不同数据库中的两个表之间找到至少一个相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527831/

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