gpt4 book ai didi

php - 如果该表中的值存在于其他表中,则连接表并从表中获取值

转载 作者:行者123 更新时间:2023-11-29 07:34:11 25 4
gpt4 key购买 nike

我有 2 个表。我需要做这项工作,因为我开始为我的游戏开放免费服务。我希望人们能提供帮助。

表1“在线”

      |ID |
---
| 1 |
| 2 |
| 3 |
| 12|
| 55|

表2“用户”

UserID|       IP
------------------------
1 | 123.123.123.123
2 | 123.123.123.123
3 | 123.123.123.123
12 | 123.123.123.123
55 | 22.12.122.22

首先。我从“在线”表中获取值(ID)。获取 ID。

我有一个用户的 ID 在线。

下一步。我使用从“在线”表中获得的值 (ID) 从“用户”表中选择 IP 地址。

当我从单用户在线获取IP时。我从具有相同“IPAddress”的“User”表中获取 UserID。它将显示许多具有相同 IP 地址的用户。

我的问题。如果有这么多用户具有相同的 IP 且在线,我如何才能从“在线”表在线查询(我的奖金查询)3 个 ID。

MYSQL 版本不支持select top。所以我不能做这份工作。请帮忙。

谢谢大家!

<?php

session_start();
header('Content-Type: text/html; charset=utf-8');
include ("config.php");
error_reporting(0);
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "data";
$account_Name = $_SESSION['userlogin'];


// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}


// get id online

$id_online = $conn->query("select ID from online");

$online = "";
while($row = $id_online->fetch_assoc())
{
// list account online

$online = $row["ID"];
echo "- ID online: $online";
echo "</br>";
$id_basetab = $conn->query("select UserID, IP from User where UserID='$online'");
$ip = "";
//show same ip list
while($list = $id_basetab->fetch_assoc())
{
$ip = $list["LastIP"];
echo "<hr>- IP: $ip</br>";
$queryIP = $conn->query("SELECT UserID, IP FROM User where IP=$ip");
echo "<hr>";
//echo " acc Clone: </br>";

while($row1 = $queryIP->fetch_assoc())
{
//echo "id: " . $row1["AccountID"]. " - Name: " . $row1["name"]. " - IP: " . $row1["LastIP"]. "<br>";
}



}

// join table
echo "<hr>";
$queryshow = $conn->query("select UserID, IP from online FULL JOIN User ON UserID=ID where UserID=$online ");
while($result = $queryshow->fetch_assoc())
{
// is my $queryshow correct? I want to get value ID is exist or not if exist UserID on User table.
// How can I create a query for only 3 users online if they have multiple account online.
//I will make my custom query here.

}
}


?>

最佳答案

此查询应该一次性获取您需要的数据。现在您可以一次性在 html 和 php 中重组和回显结果。
这将减少大量代码。我使用内部联接并同时获取了两个表的数据。如果您需要一个 where 子句,只需将它放在内部连接和此代码的 order by 部分之间。 LIMIT 3 显示数据集中前3个结果

SELECT User.UserID, User.IP, online.ID 
FROM User
INNER JOIN online ON User.UserID = online.ID
ORDER BY User.IP DESC limit 3

关于php - 如果该表中的值存在于其他表中,则连接表并从表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49756752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com