Php 从具有条件的表中检索数据,并在一个SELECT查询中检查另一个表中的记录

Php 从具有条件的表中检索数据,并在一个SELECT查询中检查另一个表中的记录,php,mysql,Php,Mysql,需要在一个查询中从一个表中检索数据,条件是同时检查另一个表是否存在ip用户,然后在显示结果的同时显示是否存在ip用户的信息 表: 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 varcha

需要在一个查询中从一个表中检索数据,条件是同时检查另一个表是否存在ip用户,然后在显示结果的同时显示是否存在ip用户的信息

表:

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
)
我想要的是:

从users表中获取数据,条件是country='paris'限制为0.10

每次使用$\u SERVER['REMOTE\u ADDR']检查ips表是否存在,以及用户id和ip地址

如果表中有记录,ips将在while中显示信息

我当前的问题代码:

<?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';
}

?>
Ps:我在提案中找不到答案

请尝试以下查询:

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

你能发布你读过的初始代码吗?请阅读,以及如何创建一个SO不是免费的编码、代码转换、调试、教程或库查找服务。我们试图修复你的代码,但我们不编写你的代码。它称为加入!在代码中查找或从代码中查找:。。。在ips上加入ip。用户\u id=ips上的用户.id。ip=。。。1只开!在“应连接表”上,筛选条件进入WHERE子句。从'Users``u`内部连接'Ips``i`到'u`.'id`='i`.'User\u id`其中。。。和按“u”排序。“Id”;联接表是最好的方法,因为联接比子查询具有更好的性能。顺便说一句:不要在SQL字符串中插入任何客户端数据。改为使用带绑定参数的预处理语句。如果给定了名称和ip,则示例有效。我编写了代码:SELECT*来自用户名为“%NAME%”的用户,SELECT user\u ID来自Ip地址为“Ip地址”的Ip地址中的ID需要搜索用户,如在常规查询中:SELECT*来自用户名为“%NAME%”的用户此外,检查ips表,查看是否有包含指定Ip地址和行的用户id的记录。如果有这样的记录,将显示消息,结果将正常返回。我在照片上写下了一切: