我正在运行一些定期从MySQL数据库查询的PHP。
在我的数据库中,我有一个十进制(5,4)字段,其中包含各种值,其中一些是实数整数,其中一些是十进制数。
我想从表单中<input type="text">
标记,$_GET
用户输入的数字,然后将其与数据库中的值进行比较。
三者中的哪一个是最好的解决方法:
$_GET['user_value]
变量转换为float,然后与DB值进行比较。$_GET['user_value]
变量转换为整数,然后与DB值进行比较。$_GET['user_value]
转换为字符串,然后比较两者。BTW:我需要小数点后的所有信息。
我的代码 - $ user_answer是用户的输入,$ correct_answer是数据库值
<?php
switch ($grid_type)
{
//If Single: Just Match Two Correct Answers
case "single":
if($user_answer === $correct_answer)
{
$is_correct = 1;
}
else
{
$is_correct = 0;
}
break;
//If Multiple: Check to see if user_answer Matches any of correct_answers
case "multiple":
if($user_answer === $correct_answer OR $correct_answer_2 OR $correct_answer_3 OR $correct_answer_4 OR $correct_answer_5)
{
$is_correct = 1;
}
else
{
$is_correct = 0;
}
break;
//If range: Check if user_answer is between the two range values
case "range":
if($user_answer > $correct_range_bottom AND $user_answer < $correct_range_top)
{
$is_correct = 1;
}
else
{
$is_correct = 0;
}
break;
default:
"An Error Has Occured - All Of Your Base Are Belong To Us.";
}
?>
答案 0 :(得分:1)
@Tom您列出的解决方案都不是很好。 你想要做的是:
获取用户输入的任何值(使用POST / GET请求 - 优先发布)然后
$user_value = $_POST['user_value'];
if(is_numeric(str_replace('.','',$user_value))){
$user_value = sprintf('%0.4f',$user_value);
echo $user_value;
}else{
echo 'Wrong number entered';
}
然后将您与数据库中的值进行比较。