所以关于我首先要做什么的一些细节。我有一个在线游戏系统,用户在其中写一个单词,然后将其发布到带有一些值的数据库中。这一切都很好。
这是一个数据库条目示例:
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 语句没有返回任何内容,所以这显然是我出错的地方,但我就是不知道是什么错了,各种办法都试过了!