我有一个表格,用户应该输入数据(名称,街道名,街道号),然后我想检查表中是否存在该数据(名称,街道名+街道号)所以我可以使用该行而不是制作一个新的。 有没有一种简单的方法来做到这一点,或者我将不得不将数据提取到数组中并以某种方式进行搜索?查找传入的数据是否存在于sql表中
我有这样的代码:
$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`
什么,我想是是找出是否例如主街31 proj_address媒体链接存在,如果这样做,利用其自动递增的ID为插入到proj_Lives_at。
编辑: 我决定发送查询来检查数据是否存在。 我加载到一个变量,并检查它是否为空,但有一些问题,以便“如果(空)”不工作,因为它应该。另一种方式(“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(),而不是空的(),它作为发现即使当填充它不应该变。
您将不得不读取该行,如果该行不存在,则将输入数据插入表中。 – suspectus
您必须获取数据并进行比较。你还有什么比较? – user1
@ user1我的意思是说,在sql中有一些方法可以做到这一点,或者如果我不得不把它拿到php并做到这一点。 –