【问题标题】:Inserting date into mysql database [i am using php and xamp mysql databse]将日期插入 mysql 数据库 [我正在使用 php 和 xampp mysql 数据库]
【发布时间】:2017-06-25 05:01:30
【问题描述】:
<?php
    session_start();
    require 'dbconfig/config.php';
    //phpinfo();
?>
<!DOCTYPE html>
<html>
<head>
<title>Time Tracker</title>
<link rel="stylesheet" href="style1.css">
<script type="text/javascript">
      function clock() {
          var mytime = new Date();
          var seconds = mytime.getSeconds();
          var minutes = mytime.getMinutes();
          var hours = mytime.getHours();
          var currentTime = hours + ":" + minutes + ":" + seconds;
          document.getElementById("Timer").firstChild.nodeValue = currentTime;
      }
    </script>
</head>

<body>
    <div id="main-wrapper">
        <center><h2>Time Tracker</h2></center>
        <center><h3>Welcome <?php echo $_SESSION['username']; ?></h3></center>

<form  method="post">
    <div class="Time Fields">


 <tr>
      <td>Date</td> 

       <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>
    <input type="text" name="Date" value="<?php echo $row ['Date']; ?> " size=10>  
 </tr> 

 <tr>  
      <td>Time In</td> 

    <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>

      <input type="int" name="TimeIn" value="<?php echo $row ['TimeIn']; ?> " size=20 readonly>  
 </tr>


 <tr> 
      <td>Time Out</td>
       <span id = "Timer">00:00:00</span>   
       <script type="text/javascript">
       setInterval('clock()', 1000);
      </script>

 </tr> 


 <tr> 
      <td>Total Time</td> 
      <td><input type=text name=x3 size=20 value=""></td>  
 </tr>

<tr> 

      <td><button class="Submit" name="Submit" type="submit">Submit</button></tr>

</table> 
    </div>


    </div>
<?php
        if(isset($_POST['Submit']))
            {
            @$TimeOut=$_POST['Timer'];
             $query_run3 = mysqli_query($con,"insert into DateTime (TimeOut) values('$TimeOut')");  
            }
?>
</body>

</html>`<?php
    session_start();
    require 'dbconfig/config.php';
    //phpinfo();
?>
<!DOCTYPE html>
<html>
<head>
<title>Time Tracker</title>
<link rel="stylesheet" href="style1.css">
<script type="text/javascript">
      function clock() {
          var mytime = new Date();
          var seconds = mytime.getSeconds();
          var minutes = mytime.getMinutes();
          var hours = mytime.getHours();
          var currentTime = hours + ":" + minutes + ":" + seconds;
          document.getElementById("Timer").firstChild.nodeValue = currentTime;
      }
    </script>
</head>

<body>
    <div id="main-wrapper">
        <center><h2>Time Tracker</h2></center>
        <center><h3>Welcome <?php echo $_SESSION['username']; ?></h3></center>

<form  method="post">
    <div class="Time Fields">


 <tr>
      <td>Date</td> 

       <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>
    <input type="text" name="Date" value="<?php echo $row ['Date']; ?> " size=10>  
 </tr> 

 <tr>  
      <td>Time In</td> 

    <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>

      <input type="int" name="TimeIn" value="<?php echo $row ['TimeIn']; ?> " size=20 readonly>  
 </tr>


 <tr> 
      <td>Time Out</td>
       <span id = "Timer">00:00:00</span>   
       <script type="text/javascript">
       setInterval('clock()', 1000);
      </script>

 </tr> 


 <tr> 
      <td>Total Time</td> 
      <td><input type=text name=x3 size=20 value=""></td>  
 </tr>

<tr> 

      <td><button class="Submit" name="Submit" type="submit">Submit</button></tr>

</table> 
    </div>


    </div>
<?php
        if(isset($_POST['Submit']))
            {
            @$TimeOut=$_POST['Timer'];
             $query_run3 = mysqli_query($con,"insert into DateTime (TimeOut) values('$TimeOut')");  
            }
?>
</body>

</html>`<?php
    session_start();
    require 'dbconfig/config.php';
    //phpinfo();
?>
<!DOCTYPE html>
<html>
<head>
<title>Time Tracker</title>
<link rel="stylesheet" href="style1.css">
<script type="text/javascript">
      function clock() {
          var mytime = new Date();
          var seconds = mytime.getSeconds();
          var minutes = mytime.getMinutes();
          var hours = mytime.getHours();
          var currentTime = hours + ":" + minutes + ":" + seconds;
          document.getElementById("Timer").firstChild.nodeValue = currentTime;
      }
    </script>
</head>

<body>
    <div id="main-wrapper">
        <center><h2>Time Tracker</h2></center>
        <center><h3>Welcome <?php echo $_SESSION['username']; ?></h3></center>

<form  method="post">
    <div class="Time Fields">


 <tr>
      <td>Date</td> 

       <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>
    <input type="text" name="Date" value="<?php echo $row ['Date']; ?> " size=10>  
 </tr> 

 <tr>  
      <td>Time In</td> 

    <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>

      <input type="int" name="TimeIn" value="<?php echo $row ['TimeIn']; ?> " size=20 readonly>  
 </tr>


 <tr> 
      <td>Time Out</td>
       <span id = "Timer">00:00:00</span>   
       <script type="text/javascript">
       setInterval('clock()', 1000);
      </script>

 </tr> 


 <tr> 
      <td>Total Time</td> 
      <td><input type=text name=x3 size=20 value=""></td>  
 </tr>

<tr> 

      <td><button class="Submit" name="Submit" type="submit">Submit</button></tr>

</table> 
    </div>


    </div>
<?php
        if(isset($_POST['Submit']))
            {
            @$TimeOut=$_POST['Timer'];
             $query_run3 = mysqli_query($con,"insert into DateTime (TimeOut) values('$TimeOut')");  
            }
?>
</body>

</html>`<?php
    session_start();
    require 'dbconfig/config.php';
    //phpinfo();
?>
<!DOCTYPE html>
<html>
<head>
<title>Time Tracker</title>
<link rel="stylesheet" href="style1.css">
<script type="text/javascript">
      function clock() {
          var mytime = new Date();
          var seconds = mytime.getSeconds();
          var minutes = mytime.getMinutes();
          var hours = mytime.getHours();
          var currentTime = hours + ":" + minutes + ":" + seconds;
          document.getElementById("Timer").firstChild.nodeValue = currentTime;
      }
    </script>
</head>

<body>
    <div id="main-wrapper">
        <center><h2>Time Tracker</h2></center>
        <center><h3>Welcome <?php echo $_SESSION['username']; ?></h3></center>

<form  method="post">
    <div class="Time Fields">


 <tr>
      <td>Date</td> 

       <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>
    <input type="text" name="Date" value="<?php echo $row ['Date']; ?> " size=10>  
 </tr> 

 <tr>  
      <td>Time In</td> 

    <?php
    $username = $_SESSION['username'];
    $date=date('Y:m:d');
    $query = "select * from datetime where username='$username' and Date = '$date'";
    $query_run1 = mysqli_query($con,$query);
    $row = mysqli_fetch_array($query_run1,MYSQLI_ASSOC);

       ?>

      <input type="int" name="TimeIn" value="<?php echo $row ['TimeIn']; ?> " size=20 readonly>  
 </tr>


 <tr> 
      <td>Time Out</td>
       <span id = "Timer">00:00:00</span>   
       <script type="text/javascript">
       setInterval('clock()', 1000);
      </script>

 </tr> 


 <tr> 
      <td>Total Time</td> 
      <td><input type=text name=x3 size=20 value=""></td>  
 </tr>

<tr> 

      <td><button class="Submit" name="Submit" type="submit">Submit</button></tr>

</table> 
    </div>


    </div>
<?php
        if(isset($_POST['Submit']))
            {
            @$TimeOut=$_POST['Timer'];
             $query_run3 = mysqli_query($con,"insert into DateTime (TimeOut) values('$TimeOut')");  
            }
?>
</body>

</html>

点击提交后,当“$query_run3”运行时,时间不会在数据库中更新。它显示为 00:00:00。此处使用的 javascript 提供了一个运行时钟,当我单击提交时,我希望它能够在数据库字段中提交和更新。如果这不可能:- 我的确切要求是:- 我需要创建一个输入类型字段,我可以在其中输入 24 小时格式的时间(html 输入字段),以便当我单击提交时它会在数据库中更新.

提前致谢。

【问题讨论】:

  • 您对 SQL 注入持开放态度。由于您使用的是 mysqli,因此请利用 prepared statementsbind_param
  • $TimeOut 可能不是有效格式。 Mysql 期望它是YYYY-MM-DD 格式。检查您得到的内容,并在尝试插入之前对其进行转换。
  • 道歉......我写的标题是错误的。它实际上是在 SQL 数据库中插入时间...我使用 span 表示“超时”,需要在 PHP 中声明并将时间格式插入数据库
  • 感谢@dhruvSaxena 的帖子...但是我在将跨度更改为输入字段时遇到了一个小问题..格式是 00:00:00 这对我来说没问题...但是它不像以前那样滴答作响......我的意思是......在以前的方法中......它曾经是一个运行时钟......不断改变秒......但现在它仍然保持在 00:00:00.. ..时间没有改变..它只是停留在00:00:00..请帮助..提前谢谢
  • jsfiddle.net/o067whac 这里是 jsfiddle@dhruvSaxena

标签: javascript php html mysql


【解决方案1】:

您似乎需要对 HTML 进行一些修复:

  • 在表单中添加action 属性:

    &lt;form method="post" action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;"&gt;


  • 由于 Javascript 函数 clock() 专门针对带有 id="Timer" 的 HTML 元素,您可以使用它来处理作为正在提交的 &lt;form&gt; 一部分的输入字段。请记住将name 属性添加到此字段。因此,修复实际上非常简单,如下所示。不过,我不确定您将 &lt;span&gt; 更改为 &lt;input&gt; 字段感觉如何:

    &lt;input id="Timer" name="Timer" disabled="disabled" value="00:00:00"&gt;

  • 在 Javascript 中,更改:

    document.getElementById("Timer").firstChild.nodeValue = currentTime;

    document.getElementById("Timer").value = currentTime;


如果您想保留 &lt;span&gt; 并在表单提交中使用它的值,这里有一个关于如何去做的基本想法:

  • 您需要一个隐藏的 &lt;input&gt; 字段。例如:&lt;input type="hidden" name="TimerCopy" id="TimerCopy" value=""&gt;

  • 提交表单时,阻止默认操作(暂时)并使用Javascript / jQuery将&lt;span id="Timer"&gt;的值复制到&lt;input id="TimerCopy"&gt;

  • 使用 Javascript / jQuery 以编程方式提交表单

  • 在 PHP 中接收 TimerCopy 字段为:

    $TimeOut = $_POST['TimerCopy'];

其余的应该照常进行。


编辑: 一个最小的工作代码:

    <input id="Timer" name="Timer" disabled="disabled" value="00:00:00">

    <script>
	    function clock() {
		    var mytime = new Date();
		    var seconds = mytime.getSeconds();
		    var minutes = mytime.getMinutes();
		    var hours = mytime.getHours();
		    var currentTime = hours + ":" + minutes + ":" + seconds;
		    document.getElementById("Timer").value = currentTime;
	    }
   	   setInterval('clock()', 1000);
    </script>

注意事项:

【讨论】:

  • 感谢@dhruvSaxena 的帖子...但是我在将跨度更改为输入字段时遇到了一个小问题..格式是 00:00:00 这对我来说没问题...但是它不像以前那样滴答作响......我的意思是......在以前的方法中......它曾经是一个运行时钟......不断改变秒......但现在它仍然保持在 00:00:00.. ..提前致谢
  • 您能否创建一个jsfiddlecodepen 并分享链接以更好地展示它?
  • 感谢小提琴链接。抱歉,我没有在回答中明确说明,但应该保留代码 &lt;script type="text/javascript"&gt; setInterval('clock()', 1000); &lt;/script&gt; 。恢复该部分代码后,它应该像以前一样工作。所以,工作版本的链接是:codepen.io/anon/pen/apagvK
  • 嘿,这也是我包含的。我没有在 jsfiddle 中提到它,因为它不允许我为 javascript 编写标签,但我在我的代码中包含了你提到的标签。我无法使该功能正常工作。我真的很想知道相同的代码如何在 Jsfiddle 和我的代码中但在 codepen 中无法按预期工作!!!
  • JSFiddle 要求所有 Javascript / jQuery 都写在为其指定的选项卡中(当然没有 &lt;script&gt; 标签)。从这个意义上说,Codepen 可能不那么严格。请尝试检查浏览器控制台是否有任何错误。此外,也许可以尝试在 setInterval() 函数和函数 clock() 的实际声明之后使用/不使用单独的 &lt;script&gt; 标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 2018-05-30
  • 1970-01-01
  • 2019-01-20
  • 2018-09-04
  • 1970-01-01
相关资源
最近更新 更多