gpt4 book ai didi

javascript - mysql 查询返回 false,mysql 插入有效但回显语句不显示

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:06 24 4
gpt4 key购买 nike

我正在制作一个基于文本的在线游戏,在我的游戏中,有一个战斗系统。击败敌人后,如果您还没有徽章,则可以获得徽章。然而,由于一些我无法理解的奇怪原因,徽章按原样添加到数据库中(如果徽章的表行在 MySQL 数据库中不存在)但是应该伴随获得的文本徽章有时会出现。我会说 echo 显示 50% 或更少的时间。这是我的代码:

$gettrainerbadge = mysqli_query($conn, "SELECT * FROM t_badges where 
badge='$badge' AND trainer='$getuser3[username]'");
$gettrainerbadge2 = mysqli_fetch_assoc($gettrainerbadge);


if(!$gettrainerbadge2)
{
//This echo shows up maybe 50% of the time the form is submitted.

echo "<font face='verdana' size='2'><br><br><br><img src='images/badges/$get_gym_leader3[badge].png' style='padding: 10px;'><br>By defeating $getuser3[battle_trainer] you have also earned a(n) $get_gym_leader3[badge] Badge!";


//This INSERT works as expected when the badge doesn't exist it adds the badge to the database if the badge already exists it does nothing

$addbadge = "INSERT INTO t_badges (`trainer`, `badge`) VALUES ('$getuser3[username]', '$get_gym_leader3[badge]')";
mysqli_query($conn, $addbadge);

}

正如我所说,echo 语句有一半的时间有效,它应该每次都有效,我不明白为什么要添加徽章,但它没有显示伴随的文本。感谢您的帮助。


在继续使用代码之后,我注意到有时我可以看到带有徽章图像的页面快速闪现,所以我不认为是上面的代码造成的。我认为这与我用来自动提交表单而无需用户反馈的以下脚本有关。我不知道他们为什么会互相干扰,但我几乎可以肯定某处正在进行双重帖子提交。如果有人可以帮助指出我在这里可能做错了什么,我将不胜感激。

if($get_remaining_opponents3 > '0')
{

print "<form action='index.php?action=battle' method='POST'
name='attackselect' id='attackselect' style='margin: 0px;'><td width='100%'
height='50px' style='background: #e6e6e6; border:2px solid #e6e6e6; border-
radius: 25px;'>

<center>

<font face='verdana' size='2'>

<label style='margin-top: 0px;' id='battle_text'>

<input type='radio' name='continue' value='continue' checked>

<i>Resuming battle ... (<span id='continue'> </span>)</i>
</input>
</label>
</form>
";
?>


<script>

var milisec= 0;
var seconds=4;

document.getElementById("continue").innerHTML ='4';
continue_battle() ;


function continue_battle(){
if (milisec<=0){
milisec=9;
seconds-=1;
}
if (seconds<=-1){
milisec=0;
seconds+=1;
}
else
{
milisec-=1;
document.getElementById("continue").innerHTML =seconds;
setTimeout("continue_battle()",100);
}
if(document.getElementById("continue").innerHTML == '0')
{
document.getElementById("attackselect").submit();
}
}
</script>

<?php
print "</form>";
}
else
{

print "<form action='index.php?action=battle' method='POST' name='victory'
id='victorious' style='margin: 0px;'><td width='100%' height='50px'
style='background: #e6e6e6; border:2px solid #e6e6e6; border-radius: 25px;'>

<center>

<font face='verdana' size='2'>

<label style='margin-top: 0px;' id='battle_text'>

<input type='radio' name='victory' value='$getuser3[opp_level]' checked>

<i>Resuming battle ... (<span id='victory'> </span>)</i>
</input>
</label>
</form>
";
?>


<script>

var milisec= 0;
var seconds=4;

document.getElementById("victory").innerHTML ='4';
victorious() ;


function victorious(){
if (milisec<=0){
milisec=9;
seconds-=1;
}
if (seconds<=-1){
milisec=0;
seconds+=1;
}
else
{
milisec-=1;
document.getElementById("victory").innerHTML =seconds;
setTimeout("victorious()",100);
}
if(document.getElementById("victory").innerHTML == '0')
{
document.getElementById("victorious").submit();
}
}
</script>

<?php
print "</form>";
}

最佳答案

$gettrainerbadge = mysqli_query($conn, "SELECT * FROM t_badges where badge='".$badge."' AND trainer='".$getuser3['username']."'");
$gettrainerbadge2 = mysqli_fetch_assoc($gettrainerbadge);

if(count($gettrainerbadge2) == 0)
{

echo "<font face='verdana' size='2'><br><br><br><img src='images/badges/".$get_gym_leader3['badge'].".png' style='padding: 10px;'><br>By defeating ".$getuser3['battle_trainer']." you have also earned a(n) ".$get_gym_leader3[badge]." Badge!";

//This INSERT works as expected when the badge doesn't exist it adds the badge to the database if the badge already exists it does nothing


$addbadge = "INSERT INTO t_badges (`trainer`, `badge`) VALUES ('".$getuser3['username']."', '".$get_gym_leader3['badge']."')";
mysqli_query($conn, $addbadge);

}

尝试使用计数变量,我希望它适用于每场比赛记录。

关于javascript - mysql 查询返回 false,mysql 插入有效但回显语句不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47692493/

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