PHP从文本输入中获取数字并比较数据库中的十进制

PHP从文本输入中获取数字并比较数据库中的十进制

问题描述:

我正在运行一些PHP,它定期从MySQL数据库中进行查询。PHP从文本输入中获取数字并比较数据库中的十进制

在我的数据库中我有一个小数(5,4)字段与各种值,其中一些是真正的整数和其中一些十进制数。

我想从窗体中获取<input type="text">标记,$_GET用户输入的数字,然后将其与数据库中的值进行比较。

其中三个是去了解这一点的最好办法:

  1. 转换的$_GET['user_value]可变浮动,然后比较DB值。
  2. $_GET['user_value]变量转换为整数,然后与DB值进行比较。
  3. $_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."; 
    } 
?> 
+0

你编码到目前为止做了什么?或者你是否在发布规范工作,希望有人能为你免费编码? – JakeGould 2014-09-29 16:28:02

+0

数字比较,特别是当您期待平等时,出奇的困难和特定的应用程序。 (这是钱吗?它是建筑材料的尺寸吗?它是温度吗?)你还没有描述你的应用程序。除了说当两个浮点数相互精确地相等时,它几乎总是侥幸,这是不可能提供任何建议的。 – 2014-09-29 16:32:22

+0

感谢您的高举 - 我看到它可能看起来像我是代码捕鱼。添加了我的实际代码。 – t0mgs 2014-09-29 16:34:25

你列出的解决方案@汤姆都不是很好。 你想要做的是这样的:

(/ 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值进行比较。

+0

感谢您的回答。不知道我了解用户如何在输入字段中输入错误的数字。 – t0mgs 2014-09-29 17:46:19

+0

输入栏是文本。意味着用户可以输入任何内容。 (例如:字母,数字,下划线,特殊字符,全部....) – 2014-09-29 17:49:10

+0

如果这个答案是正确的,请接受它。 – 2014-09-29 17:53:29