- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个网络表单,可以在其中填写该人正在接收的咨询信息。我知道如何腾出时间来处理文本字段,但由于某种原因,当我将其更改为下拉菜单并更改其插入数据库的方式时,它不再起作用。有什么想法吗?这就是 php 的样子。好像。
//if submit is pressed
if(isset($_POST['submit'])) {
//Create empty error array
$error = array();
//Check for names
if(empty($_POST['providerName'])) {
$error['providerName'] = 'Please enter your name';
}
if(empty($_POST['clientName'])) {
$error['clientName'] = 'Please select the client\'s name';
}
//Check for services
if(empty($_POST['service'])) {
$error['service'] = 'Please select a service';
}
if(empty($_POST['receiverGroup'])) {
$error['receiverGroup'] = 'Please select who is receiving the service';
}
//Check for time
if(empty($_POST['hours'])) {
$error['hours'] = 'Please enter a value for number of hours';
}
if(empty($_POST['minutes'])) {
$error['minutes'] = 'Please enter a value for number of minutes';
}
//Check for method
if(empty($_POST['method'])) {
$error['method'] = 'Please select a method';
}
//If there are no errors
if(sizeof($error) == 0)
{
$i = 0;
$temp = $_POST['receiverGroup'];
foreach($temp as $each) {
if($i==0){
$receiver = $each;
}else{
$receiver = $receiver + " , " + $each;
}
$i++;
}
$elapsedTime = $_POST['hours'] + ($_POST['minutes']/60);
//Insert a record into the database
$query = "INSERT INTO dosage (
entry_id,
providerName,
clientName,
services,
receiver,
elapsedTime,
method,
activity_date
) VALUES (
null,
'{$_POST['providerName']}',
'{$_POST['clientName']}',
'{$_POST['service']}',
$receiver,
$elapsedTime,
'{$_POST['method']}',
NOW()
)";
//echo $query;
mysqli_query($dbc, $query) or die('Query failed: ' . mysqli_error($dbc));
/* $result = mysqli_query($dbc, $query) or die('Query failed: ' . mysqli_error($dbc)); */
//Display a confirmation
echo "<div class=\"alert alert-success\">Thank You. Your entry has been submitted.</div>";
} else {
foreach($error as $value)
{
echo "<div class=\"alert alert-danger\">";
echo $value;
echo "</div>";
}
}
}
这是 HTML
<div class="col-md-6 col-xs-12 background">
<label class="col-md-12 col-xs-12 color h4">Total Time Providing Services (Hours, Minutes)</label><br />
<select name = "hours">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name = "minutes">
<option value=":00">:00</option>
<option value=":01">:01</option>
<option value=":02">:02</option>
<option value=":03">:03</option>
<option value=":04">:04</option>
<option value=":05">:05</option>
<option value=":06">:06</option>
<option value=":07">:07</option>
<option value=":08">:08</option>
<option value=":09">:09</option>
// ...
还有 table
CREATE TABLE IF NOT EXISTS `dosage`
( `entry_id` int(11) NOT NULL AUTO_INCREMENT,
`providerName` text NOT NULL,
`clientName` text NOT NULL,
`services` text NOT NULL,
`receiver` text NOT NULL,
`elapsedTime` text NOT NULL,
`method` text NOT NULL,
`activity_date` datetime NOT NULL, PRIMARY KEY (`entry_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
最佳答案
您的代码存在一些问题。首先,也是最重要的,您的代码很容易受到 SQL 注入(inject)攻击,因为您将值连接到 SQL 查询中。相反,您应该使用带参数的准备好的语句。
关于您的问题,
$elapsedTime = $_POST['hours'] + ($_POST['minutes']/60);
您的分钟
变量如下所示::00
到:09
等。您正在尝试划分一个字符串(以冒号 (:
) 乘 60。删除该冒号。
此外,您将添加您的值在一起,而不是连接。如果要连接字符串,请使用句点 (.
) 而不是加法运算符 (+
)
$elapsedTime = $_POST['hours'] . ($_POST['minutes']/60);
这仍然不能解决您遇到的另一个问题 - 除法的小数结果。例如,如果您传入 分钟
值为 10
(假设您去掉了前导冒号),那么您现在就拥有了(假设小时为 01
)
$elapsedTime = "01" . ":" . (10/60);
您的elapsedTime
变量如下所示:01:0.16666666666667
。这是无效的。
最好的选择可能是修改数据库结构本身。您可以将耗时存储为一个简单的整数,并在存储之前执行所需的数学运算以获得正确的时间(以分钟为单位):
$elapsedTime = ($hours * 60) + $minutes;
这提供了一个简单的数值,您可以使用它在数据库中执行数学运算(即 MAX()
、MIN()
、SUM( )
)。这些无法通过 TEXT
数据类型完成。它还允许您通过反转上述公式轻松将 BACK 转换为 HH:MM 格式:
$original_hours = (int)($elapsedTime / 60);
$original_min = $elapsedTime % 60;
关于php - 时间未插入数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005543/
我找到了 this excellent question and answer它以 x/y(加上 center x/y 和 degrees/radians)开始并计算旋转- 到 x'/y'。这个计算很
全部: 我已经创建了一个 Windows 窗体和一个按钮。在另一个线程中,我试图更改按钮的文本,但它崩溃了;但是如果我尝试更改按钮的颜色,它肯定会成功。我认为如果您更改任何 Windows 窗体控件属
本网站的另一个问题已证实,C 中没有缩写的字面后缀,并且可以执行以下操作: short Number = (short)1; 但是转换它和不这样做有什么区别: short Number = 1; 您使
我有下表: ID (int) EMAIL (varchar(50)) CAMPAIGNID (int) isSubscribe (bit) isActionByUser (bit) 此表存储了用户对事
也就是说,无需触发Javascript事件即可改变的属性,如何保留我手动选中或取消选中的复选框的状态,然后复制到另一个地方? 运行下面的代码片段并选中或取消选中其中的一些,然后点击“复制”: $('#
我在网上找到的所有关于递增指针导致段错误的示例都涉及指针的取消引用 - 如果我只想递增它(例如在 for 循环的末尾)并且我不在乎它是否最终进入无效内存,因为我不会再使用它。例如,在这个程序中,每次迭
我有一个 Spring MVC REST 服务,它使用 XStream 将消息与 XML 相互转换。 有什么方法可以将请求和响应中的 xml(即正文)打印到普通的 log4j 记录器? 在 Contr
做我的任务有一个很大的挑战,那就是做相互依赖的任务我在这张照片中说的。假设我们有两个任务 A 和 B,执行子任务 A1、A2 和 B1、B2,假设任务 B 依赖于 A。 要理想地执行任务 B,您应该执
通过阅读该网站上的几个答案,我了解到 CoInitialize(Ex) should be called by the creator of a thread 。然后,在该线程中运行的任何代码都可以使
这个问题已经困扰我一段时间了。我以前从未真正使用过 ListViews,也没有使用过 FirebaseListAdapters。我想做的就是通过显示 id 和用户位置来启动列表的基础,但由于某种原因,
我很难解释这两个(看似简单)句子的含义: “受检异常由编译器在编译时检查” 这是什么意思?编译器检查是否捕获了所有已检查的异常(在代码中抛出)? “未经检查的异常在运行时检查,而不是编译时” 这句话中
我有一个包含排除子字符串的文本文件,我想迭代该文件以检查并返回不带排除子字符串的输入项。 这里我使用 python 2.4,因此下面的代码可以实现此目的,因为 with open 和 any 不起作用
Spring 的缓存框架能否了解请求上下文的身份验证状态,或者更容易推出自己的缓存解决方案? 最佳答案 尽管我发现这个用例 super 奇怪,但您可以为几乎任何与 SpEL 配合使用的内容设置缓存条件
我有以下函数模板: template HeldAs* duplicate(MostDerived *original, HeldAs *held) { // error checking omi
如果我的应用程序具有设备管理员/设备所有者权限(未获得 root 权限),我如何才能从我的应用程序中终止(或阻止启动)另一个应用程序? 最佳答案 设备所有者可以阻止应用程序: DevicePolicy
非常简单的问题,但我似乎无法让它正常工作。 我有一个组件,其中有一些 XSLT(用于导航)。它通过 XSLT TBB 使用 XSLT Mediator 发布。 发布后
我正在将一个对象拖动到一个可拖放的对象内,该对象也是可拖动的。放置对象后,它会嵌套在可放置对象内。同样,如果我将对象拖到可放置的外部,它就不再嵌套。 但是,如果我经常拖入和拖出可放置对象,则可拖动对象
我正在尝试为按钮和弹出窗口等多个指令实现“取消选择”功能。也就是说,我希望当用户单击不属于指令模板一部分的元素时触发我的函数。目前,我正在使用以下 JQuery 代码: $('body').click
我从 this question 得到了下面的代码,该脚本用于在 Google tasks 上更改 iframe[src="about:blank"] 内的 CSS使用 Chrome 扩展 Tempe
我有一些 @Mock 对象,但没有指定在该对象上调用方法的返回值。该方法返回 int (不是 Integer)。我很惊讶地发现 Mockito 没有抛出 NPE 并返回 0。这是预期的行为吗? 例如:
我是一名优秀的程序员,十分优秀!