我要做的是在两个数据库之间寻找至少一个相似性。一个数据库称为criteria
。另一个叫Tenant
。
在Criteria
中的表格内有10列。在Tenant
中的表内有10列。
如果您是租户并想要找到从业主处出售的物业,我们必须查看租户与业主之间是否至少有一个相似之处。
如果您是租户,主键是用户名,请说约翰。然后,为了让约翰与想要出售他们的房屋或财产的业主相匹配,约翰必须与业主至少有一个相似之处。如果他这样做,那么我们进入所有者数据库并显示出售的属性。
到目前为止,这是我想要做的事情。这不是很多 我有一个名为ad的数据库,其中包含所有者出售的属性: 例如Database_name(Ad) - > table_name(注册用户的名称) - >每个用户都将其属性保存在该表中。
另一个数据库称为标准:以下是可能想要租用其财产的人的用户偏好。 Database_name(Criteria) - > table_name(注册用户的名称) - >有10列具有以下名称:用户名,第一租金,职业,年龄,租户,收入,历史,地址,吸烟者,宠物。 我的最后一个数据库叫做Tenant:这里有与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个表(在一个数据库中)与多个表(在另一个数据库中)进行比较,并至少找到相似性。如果发现至少有一个相似性,它将停止并显示该所有者出售的所有财产。我希望我很清楚。
答案 0 :(得分:0)
这样的内容将找到与给定租户至少有一个相似性的所有所有者,然后列出他们所有的属性。第一个查询获取其条件与给定租户类似的所有所有者名称。然后循环遍历这些结果,以获取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";
}
}