PHP从文本输入中获取数字并比较数据库中的十进制
我正在运行一些PHP,它定期从MySQL数据库中进行查询。PHP从文本输入中获取数字并比较数据库中的十进制
在我的数据库中我有一个小数(5,4)字段与各种值,其中一些是真正的整数和其中一些十进制数。
我想从窗体中获取<input type="text">
标记,$_GET
用户输入的数字,然后将其与数据库中的值进行比较。
其中三个是去了解这一点的最好办法:
- 转换的
$_GET['user_value]
可变浮动,然后比较DB值。 - 将
$_GET['user_value]
变量转换为整数,然后与DB值进行比较。 - 将
$_GET['user_value]
转换为字符串,然后比较两者。
答案:我需要小数点后的所有信息。
我的代码 - $ user_answer是用户的输入,$ correct_answer是dB值
<?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.";
}
?>
你列出的解决方案@汤姆都不是很好。 你想要做的是这样的:
(/ GET请求使用POST - 职位者优先)得到什么价值用户输入然后
$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';
}
,那么你从DB值进行比较。
感谢您的回答。不知道我了解用户如何在输入字段中输入错误的数字。 – t0mgs 2014-09-29 17:46:19
输入栏是文本。意味着用户可以输入任何内容。 (例如:字母,数字,下划线,特殊字符,全部....) – 2014-09-29 17:49:10
如果这个答案是正确的,请接受它。 – 2014-09-29 17:53:29
你编码到目前为止做了什么?或者你是否在发布规范工作,希望有人能为你免费编码? – JakeGould 2014-09-29 16:28:02
数字比较,特别是当您期待平等时,出奇的困难和特定的应用程序。 (这是钱吗?它是建筑材料的尺寸吗?它是温度吗?)你还没有描述你的应用程序。除了说当两个浮点数相互精确地相等时,它几乎总是侥幸,这是不可能提供任何建议的。 – 2014-09-29 16:32:22
感谢您的高举 - 我看到它可能看起来像我是代码捕鱼。添加了我的实际代码。 – t0mgs 2014-09-29 16:34:25