gpt4 book ai didi

java - 一些数据库逻辑,检索正确的条目

转载 作者:行者123 更新时间:2023-12-01 05:11:33 25 4
gpt4 key购买 nike

关于我首先要做的事情的一些细节。我有一个在线游戏系统,用户在其中写入一个单词,该单词会被发布到包含一些值的数据库中。这一切都很好。

这是一个数据库条目示例:

uniqueID   victim      rival    wordguess   won
6 607260120 504374351 Gg 0

现在的问题是,许多受害者可以与许多对手发起游戏,受害者如何检查他们是否发起了针对他们的游戏,以及他们是否发起了针对某人的游戏?

我有两个 PHP 文件,当前用于使用以下行检查这些内容:

$query = "SELECT `rival` FROM currentgames WHERE `victim` = '$victim'";
echo $row["rival"].",";

对于受害者来说则相反。

现在在我的 Java 中,我正在检查 listarray 适配器中的当前值,如下所示:

for (int i = 0;i<NetPlay.rivalArray.length-1;i++)
{
Log.i("VICTIM ARRAY DATA ", NetPlay.rivalArray[i]);

if (NetPlay.rivalArray[i].equals(f.id))
{
ingame = true;
break;

}
else
{
ingame = false;

}
}

for (int i = 0;i<NetPlay.victimArray.length-1;i++)
{
Log.i("RIVAL ARRAY DATA ", NetPlay.victimArray[i]);

if (NetPlay.victimArray[i].equals(NetPlay.myId))
{
battle = false;
break;
}
else
{
battle = true;

}

}

if (battle.equals(false))
{
battleBtn.setVisibility(View.INVISIBLE);
}
else
{
battleBtn.setVisibility(View.VISIBLE);
}

if (ingame.equals(true))
{
newgameBtn.setVisibility(View.INVISIBLE);
}
else
{
newgameBtn.setVisibility(View.VISIBLE);
}

奇怪的是,我可以让玩家显示他们是否已经初始化了与对手的比赛,从而隐藏了“新游戏”按钮,但我无法让“接受游戏”按钮正常工作。数据库和 SQL 绝对是我的弱点,我真的找不到解决这个问题的正确方法。最初的想法是在数据库中为每个用户/受害者提供自己的表,但是随后会出现在其他 UserId 的表中针对它们检查游戏的问题,很快就会变得困惑。

我可能还应该添加这是在 ListView 适配器内部进行的,因此每个 ListView 项目的 f.id 都会发生变化,这些检查也会发生在每个 ListView 适配器中,我意识到这不是很有效,但我的主要焦点就是让它发挥作用,然后从那里进行优化。

还要注意的是,我的“新游戏”按钮工作得很好,我认为第二个按钮几乎是同样的东西,但无论我以哪种方式工作,它都不起作用,我'我确信这是我忽略的事情。大家有什么想法吗?

好吧,我已经将范围缩小到这样一个事实:用于检查此人是否已针对您发起游戏的 SQL 语句没有返回任何内容,所以这显然是我出错的地方,但我就是无法弄清楚找出问题所在,我已经尝试了各种方法!

最佳答案

不要选择某人已经与之对抗的所有玩家。相反,查询如下内容:

SELECT `uniqueID` 
FROM currentgames
WHERE (`victim` = '$victim' AND `rival` = '$rival')
OR (`victim` = '$rival' AND `rival` = '$victim');

这样,您要么返回一行,要么不返回,并且您不需要检查返回的行以查看其中一行是否有问题。这也应该会让您的 Accept 逻辑变得更加容易。

关于java - 一些数据库逻辑,检索正确的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978966/

25 4 0