0

events次のフィールドを持つテーブルがあります。

`id`-->INT,PRIMARY AND AUTO_INCREMENT
`event_id`-->INT
`mem_1_id`-->INT
`mem_2_id`-->INT
`mem_3_id`-->INT
`mem_4_id`-->INT
`mem_5_id`-->INT
`mem_6_id`-->INT

TABLEでは、すべてが特定のmem_x_id (0<x<7)ものに対して区別されます。は通常使用される主キーです。考えられる例:event_ideventsid

id  event_id    mem_1_id    mem_2_id    mem_3_id    mem_4_id    mem_5_id    mem_6_id
1   11          123         345         567         67          34          56
2   12          234         555         67          43          23          12
2   12          34          55          167         435         233         122

ここで、ログインして特定のイベントのページを表示しているユーザーid(From the TABLE)が、そのイベントの下のTABLEに存在するかどうかを確認したいと思います。特定のに対して複数のエントリが存在する場合があります 。イベントページにあるものをすべて検索したい。userseventsidevent_idevent_id

私のコードは以下のとおりです。PHPを初めて使用するため、古いバージョンを使用していることに注意してください。私は物事を機能させることを計画していて、それから私のコードをPDOに変更します。私はPDOを並行して学んでいます。しかし、最初にコードを機能させたいと思います。

$id=stores the event_id of the event page that the user is viewing.

$_SESSION['id']=`id` of the user that is logged in and viewing the page.

if(isset($_SESSION['id'])){
    $result1=mysql_query("SELECT id FROM events WHERE event_id='".$id."')");
        if ($result1 == false) {
            echo mysql_error();
            die;
        }
        $row1 = mysql_fetch_assoc($result1);

        if($row1['id']){
            if ($_SESSION['id']==$row1['mem_1_id'] || $_SESSION['id']==$row1['mem_2_id'] || $_SESSION['id']==$row1['mem_3_id'] || $_SESSION['id']==$row1['mem_4_id'] || $_SESSION['id']==$row1['mem_5_id'] || $_SESSION['id']==$row1['mem_6_id']){
                $is_already_regis=1;
            }
        }
    }
4

2 に答える 2

0

クエリでは、使用するすべてのフィールドを選択する必要があります。

"SELECT id, mem_1_id, mem_2_id, [...], mem_6_id FROM events WHERE event_id='".$id."'"

次に、ループを使用して各行をチェックする必要があります。

while ($row = mysql_fetch_assoc($result1)) {
    if ($_SESSION['id']==$row['mem_1_id'] || $_SESSION['id']==$row['mem_2_id'] || $_SESSION['id']==$row['mem_3_id'] || $_SESSION['id']==$row['mem_4_id'] || $_SESSION['id']==$row['mem_5_id'] || $_SESSION['id']==$row['mem_6_id']){
            $is_already_regis=1;
    }
}
于 2013-02-08T13:16:40.923 に答える
0

mem_X_id フィールドのいずれかが現在のユーザーの ID と一致するかどうかを確認するには、選択して or を実行するだけです。これにより、多くの処理が節約されます。

于 2013-02-08T13:18:34.950 に答える