我有一张桌子,
id / category / extra / another
我想检查表格中的一行是否有重复的条目。
例如:
服务/管道/住宅
以上只能存在一次。
但是...
建筑/管道/住宅以上也可以存在。
所以我必须在一行中检查所有三个字段?
我的代码无法使用。
<?php
// connect here
//
$category = mysql_real_escape_string($_POST['category']);
$extra = mysql_real_escape_string($_POST['extra']);
$another = mysql_real_escape_string($_POST['another']);
$querySTATUS = "SELECT * FROM categories WHERE category ='.$category.' AND extra ='.$extra.' AND another ='.$another'";
$resultSTATUS = mysql_query($querySTATUS) or die(mysql_error());
$CountRows = mysql_num_rows($resultSTATUS);
if($CountRows == 1){
echo "OK";
$query1 = "INSERT INTO categories (category,extra,another) VALUES ( '$category','$extra','$another')";
$result = mysql_query($query1) or die(mysql_error());
} else {echo "!OK";}exit;?>
我有一个3输入字段,显然会发布数据。
响应OK和!OK可以在表单页面上运行一些内联jquery。
我一直在接受!在萤火虫中做出反应,我尝试了查询的各种变化,但没有成功。
如果您能提供帮助,请提前感谢您: - )
约翰
答案 0 :(得分:1)
此SQL查询将显示有多少行具有相同的category,extra和另一组。您可以过滤WHERE quantity > 1
以获取具有重复项的行。
SELECT CONCAT(category, extra, another) as catexan, COUNT(*) as quantity, category, extra, another FROM categories GROUP BY catexan ORDER BY quantity DESC;
更新:我的意思是基于您的初步说明。根据您提供的详细信息,这应该是您正在寻找的:
// connect
$category = mysql_real_escape_string($_POST['category']);
$extra = mysql_real_escape_string($_POST['extra']);
$another = mysql_real_escape_string($_POST['another']);
$result = mysql_query("SELECT id FROM categories WHERE category = '$category' AND extra = '$extra' AND another = '$another';");
if (mysql_num_rows($result) > 0) {
echo '!OK';
} else {
mysql_query("INSERT INTO categories (category, extra, another) VALUES ('$category', '$extra', '$another');");
echo 'OK';
}