从0写出一个在线ARC单局PTT计算器

           

发布于 2022-03-10  125 人经过了这里


前两天心血来潮打算写一个在线的ARCPTT计算器,于是开工

主要思路是将曲目信息和定数存在MYSQL中,再在这里使用PHP进行调用处理就好
因为要做的不是跳转页面也不是API,所以这次用POST来写
数据库的相关就不多说了,也不难弄,从阿卡依wiki扒一下定数表导入一下就好

在处理这边使用

if (isset($_POST['sub']))

来判断是否触发了按钮,如果触发就开始进行模糊搜索,连接和计算
数据库的模糊搜索使用

SELECT song,PST,PRS,FTR,BYD FROM arcaea_ptt WHERE song LIKE '%$temp%'

来进行处理,非常的方便(真的很高兴SQL自带模糊匹配)

匹配完成后进行输出就好了,最后再简单的布局一下前端就可以使用啦,以下是使用截图

再附上一些主体代码:

//这里放的是后端处理代码,前端随便写写就行
if (isset($_POST['sub'])){
	    $temp = $_POST['songname'];$lvl = $_POST['level'];
	    $ans = mysqli_query($con,"SELECT song,PST,PRS,FTR,BYD FROM arcaea_ptt WHERE song LIKE '%$temp%' ");
	    if(mysqli_num_rows($ans) > 0)
	        echo "<table border='1'><tr height='35'><th width='40%'>曲目名称</th><th width='15%'>难度</th><th width='25%'>成绩</th><th width='20%'>单局PTT</th>";
            while($row = mysqli_fetch_assoc($ans)){
                $nowptt = 0;
                if($_POST['score'] >= 10000000) $nowptt = $row["$lvl"] + 2;
                else if($_POST['score'] >= 9800000) $nowptt = $row["$lvl"] + 1 + ($_POST['score'] - 9800000)/200000;
                else $nowptt = $row["$lvl"] + ($_POST['score'] - 9500000)/300000;
                if($nowptt < 0) $nowptt = 0;
                $nowptt = round($nowptt,5);
                if($row["$lvl"] == 0) $nowptt = '无BYD';
                echo "<tr height='30'><th>".$row["song"]."</th><th>".$lvl."</th><th>".$_POST['score']."</th><th>".$nowptt."</th>";
            }
            echo "</table>";
	}

使用地址:qwq.re/arcaea

就是这样啦w