2017-05-12 13 views
0

条件付きで1つのテーブルからデータを取得する必要があります "where"は別のテーブルが存在するかどうかを確認してから結果を表示します条件付きのテーブルからデータを取得し、別のテーブルのレコードを1つのSELECTクエリでチェックする

Ips (
    Id int (10) not null auto_increment, 
    User_id int (10) not null default '0', 
    Ip varchar (40) not null 
) 

Users (
    Id int (11) not null auto_increment, 
    Username varchar (35) not null, 
    Email varchar (200) not null, 
    Salt varchar (40) not null, 
    Password varchar (40) not null, 
    Country varchar (40) not null 
) 

私が取得したいもの::

  1. は、ユーザーテーブルのwiからデータを取得し、IP

    テーブルが存在するかどうかをしばらく表示情報で「国= 'パリのLIMIT 0.10」

  2. 条件あなたがある場合は、IPSのテーブルは$ _SERVER [「REMOTE_ADDR」]

  3. を持つユーザーIDとIPアドレスを使用して存在していることを確認するたびに目

    <?php 
    
    include "connect.php"; 
    
    $db = mysqli_query($connect, "SELECT * FROM users JOIN ips ON ips.user_id=users.id ON ips.ip='".$_SERVER['REMOTE_ADDR']."' WHERE users.country='paris' LIMIT 0,10"); 
    
    if (mysqli_num_rows($db)>0){ 
        while ($data = mysqli_fetch_assoc($db)){ 
         print_r($data); 
         if (filter_var($data['ip'], FILTER_VALIDATE_IP)){ //check var is ip adress 
          echo '<br>isset ip'; 
         } 
        } 
    }else{ 
        echo 'not records'; 
    } 
    
    ?> 
    

    シモンズ::私は広報で答えを見つけることができませんでしたテーブルのIPSのレコードはしばらく

私の現在の問題のコードに情報を表示しますoposals

+3

あなたはuは読みください –

+1

をした初期のコードを投稿することができます(http://stackoverflow.com/help/on-topic)[どのようなトピック私は約尋ねることができます] [よくある質問](http://stackoverflow.com/help/how-to-ask) と[完璧な質問](http://codeblog.jonskeet.uk/2010/08/29 /完全な質問を書く/ )[最小限の完全かつ検証可能な例]を作成する方法(http://stackoverflow.com/help/mcve) ** SOは**無料のコーディングまたはコードではありません変換またはデバッグまたはチュートリアルまたは図書館検索サービス ___あなたのコードを修正しようとしましたが、あなたのコードは書きません__ – RiggsFolly

+1

そのJOINと呼ばれる!それを[マニュアル](https://dev.mysql.com/doc/refman/5.7/en/join.html)で調べるか、[チュートリアル](https://www.techonthenet.com/mysql)を探してください。 /joins.php) – RiggsFolly

答えて

0

は、このクエリを試してみてください。

SELECT * FROM Users WHERE Country ='paris' AND Id IN (SELECT User_id FROM Ips WHERE Ip = 'ip_adddress') 
+0

あなたの例は、名前とIPが与えられている場合に機能します。 私はコードを作っ: を:「%NAME%さん」AND IDのようにユーザ名が 通常のクエリのようにユーザーを検索する必要があります(IP =「IPアドレスは」IPからのuser_id SELECT)ユーザーからの SELECT *をSELECT * from username WHERE username '%NAME%' さらに、指定された IPアドレスとその行のユーザーIDを含むレコードがあるかどうかをips表で確認します。そのようなレコードがある場合、メッセージが表示され、結果は正常に戻されます。私は写真のすべてを書きました:http://iv.pl/images/11692056913053727462.png – wojttaa

関連する問題