我有一个表单,用户应该输入数据(名称,街道名称,街道编号),然后我想检查该数据是否存在于表中(名称,街道名称 + 街道编号),所以我可以使用该行而不是创建一个新的一。有没有一种简单的方法可以做到这一点,还是我必须将数据提取到一个数组中并以某种方式搜索?
我有这个代码:
$sql = "INSERT INTO 725G54_proj_address VALUES (NULL,'$streetname','$streetnumber')";
$result1 = mysql_query($sql,$con);
$address=mysql_insert_id();
echo "ID of last inserted record is: " . $address;
echo "<br>";
$sql = "INSERT INTO 725G54_proj_contact VALUES ('Null','$name','$telephonenumber')";
$result2 = mysql_query($sql,$con);
$contact = mysql_insert_id();
echo "ID of last inserted record is: " . $contact;
$sql = "INSERT INTO 725G54_proj_LivesAt VALUES ('$contact','$address')";
$result3 = mysql_query($sql,$con);`enter code here`
我想要的是找出示例 Mainstreet 31 是否已经存在于 proj_address 中,如果存在,则使用其自动递增的 id 插入 proj_Lives_at。
编辑:我决定发送查询以检查数据是否存在。我将它加载到一个变量中并检查它是否为空,但是有一些问题使得“if(empty)”不能正常工作。然而,反过来 ("if(!empty)") 也可以。
查询和加载如下所示:
$sql2="SELECT 725G54_proj_address.Address_ID, GROUP_CONCAT( cast( concat( 725G54_proj_address.Street_Name, ' ', 725G54_proj_address.Street_Number ) AS char ) SEPARATOR ', ') AS addresses
FROM 725G54_proj_address
WHERE 725G54_proj_address.Street_Name = '$streetname' AND 725G54_proj_address.Street_Number= '$streetnumber'
GROUP BY 725G54_proj_address.Address_ID
ORDER BY 725G54_proj_address.Address_ID ASC";
$result2=mysql_query($sql2);
编辑 2:我尝试切换到使用 count() 而不是 empty() 并且它发现变量已填充,即使它不应该。