2011-01-13 6 views
1

私はテーブルを持って、余分なMySQLクエリ - 1つの行に3つの値が存在する場合

ID /カテゴリ/ /私は重複したエントリのためにテーブルの行をチェックしたいと思い、別の

。例えば

サービス/配管/住宅

上記は一度だけ存在することができます。住宅

しかし...

建設/配管/

上記すぎ存在することができます。

だから私は1つの行に3つのフィールドを一緒にチェックする必要がありますか?

私のコードは機能しません。

<?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が実行されます。

私はちょっと待っています!FirebugでOKの応答、私はクエリのバリエーションを試しましたが、成功しませんでした。あなたはこのSQLクエリは、行は、同じカテゴリのセット、余分な、と別のものを持っているどのように多くのあなたが表示されますジョン

答えて

1

:-)を助けることができるかどうか

は、事前にありがとうございます。 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; 

UPDATE:私はあなたの最初の説明に基づいて行っていました。あなたが提供する内容に基づいて、これはあなたが探しているものを行う必要があります。

// 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'; 
} 
+0

ねえ、 おかげでちょうど第二部を試みます。あなたは秒で知りましょう。 – jonnypixel

+0

それはうまくいきました、ありがとうございました。私は本当にクエリで現在のMYSQLの本を購入する必要があります。ウェブから学ぶのはとても難しいです。良い本の中には何か?またはウェブサイトですか? – jonnypixel

+0

確かに。一般的に、StackOverflowでは、コメントを追加するのではなく、投票したり、質問を受け付けたりすることが、感謝の気持ちを示す最良の方法です。 – coreyward

関連する問題