1

私はこれらのテーブルを持っています:

報告:

id, ip_addr, upload_id

アップロード:

id, userID, name, location, category, private

基本的に、私はすべてのアップロードを表示しており、レポート テーブルに参加して、現在のユーザーの ip_address がアップロードを報告したかどうかを判断したいと考えています (クエリ後に ip_addr を比較します)。私が直面している問題は、同じアップロードに対して複数のレポートがあり、異なる人 (必ずしも登録ユーザーではないため、ip_addr を使用しているわけではありません) によるものである可能性があることです。では、この MySQL クエリをどのように設定し、ループ中に次の操作を実行するにはどうすればよいでしょうか..?

PHP: ($things がクエリ結果になります)

foreach((array)$things as $files){
    if ($files['ip_addr'] == $user_ip_addr) {
         // display upload info and an already reported image
    } else {
         // display upload info with an unreported image
    }
}

これまでのところ、すべてのアップロードを表示するこれがあります

$query = 'SELECT * FROM upload WHERE private="0" ';
4

1 に答える 1

0

複数の識別子を持つだけです。テーブル構造は次のようになります。

テーブル「レポート」

reported_by = user id 
reported_id = upload id
id = primary index

クエリは次のようになります。

SELECT COUNT(*) as `rows` WHERE reported_id = ? AND reported_by = ?

出来上がり、

<?php
    if($rows['rows'] > 0) // they reported it
        echo 'Tattle tale.';
    else
        echo 'Snitches get stitches.';
?>

? 名前のないパラメーターです (mysqli または pdo を使用していると仮定)

于 2012-12-25T03:06:21.170 に答える