Я бегу PHP, который регулярно запрашивает из базы данных MySQL.
В моей БД у меня есть десятичное поле (5,4) с ассортиментом значений, некоторые из которых являются действительными целыми числами, а некоторые — десятичными числами.
Я хотел бы взять <input type="text">
тег из формы, $_GET
число, введенное пользователем, затем сравните его со значением в БД.
Какой из этих трех способов лучше всего подходит для этого:
$_GET['user_value]
переменная, чтобы плавать, затем сравните со значением БД.$_GET['user_value]
переменная в целое число, затем сравните со значением БД.$_GET['user_value]
к строкам, а затем сравнить два.КСТАТИ: Мне нужна вся информация после запятой.
МОЙ КОД — $ 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.";
}
?>
@ 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';
}
тогда вы сравниваете со значением из БД.
Других решений пока нет …