我有 php 表和表内的表单字段,显示某些设备的状态。我正在显示日期、电压、电流等值。用户可以选择任意值,这样所选值对应的时间将用于下一页的平均计算。对于平均计算,我应该选择立即 5 个值到所选值。因此日期列中的时间值很重要(例如 2019-04-17 16:14:44)。问题是当我使用隐藏的表单值字段时,我只得到日期(例如 2019-04-17)而不是“时间”。
表单.php
$sql = "SELECT Date, Voltage, Current FROM DataTable WHERE Date>= (CURDATE() - INTERVAL 90 DAY) ORDER BY Datum DESC";
$result = $conn->query($sql);
$i=1;
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<form action = 'formProcess.php' method =get>";
echo "<tr>
<td>" . $i. "</td>
<td>" . $row["Date"]. "</td>
<td>" . $row["Voltage"] . "</td>
<td>" . $row["Current"]. "</td>
<td>"." <input type=hidden name=getTime value =" .$row["Date"]." </td>
<td>"." <input type=submit name=timesubmit value=select class = classSubmit"." </td>
</tr>";
$i++;
echo "</form>";
}
echo "</table>";
} else { echo "0 results"; }
表单处理.php
include("DBconnect.php");
if(isset ($_GET['timesubmit'])){
echo "selected a value";
$selectedTime =$_GET['getTime'];
// the following echo only gives date, not time !! that is the problem.
echo $selectedTime;
// I wanna use the immediate 5 value, that selected value and immediate 4 values for avg calculation.
$sql = "SELECT * FROM DataTable
WHERE date =>$selectedTime AND ORDER BY Date DESC LIMIT 5 ";
$conn= mysqli_connect( $dbhost, $dbuser, $dbpass, $db );
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$result_5_values = $conn->query($sql);
$i=1;
if ($result_5_values->num_rows > 0) {
while($row = $result_10_values->fetch_assoc()) {
echo "<tr>
<td>" . $i. "</td>
<td>" . $row["Date"]. "</td>
<td>" . $row["Voltage"] . "</td>
<td>" . $row["Current"]. "</td>
</tr>";
$i++;
}
echo "</table>";
} else { echo "0 results"; }
}else { echo "No selection has been made";}
最佳答案
试试这个
$sql = "SELECT Date, Voltage, Current FROM DataTable WHERE Date>= (CURDATE() - INTERVAL 90 DAY) ORDER BY Datum DESC";
$result = $conn->query($sql);
$i=1;
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<form action='formProcess.php' method ='get'>";
echo "<tr>
<td>" . $i. "</td>
<td>" . $row["Date"]. "</td>
<td>" . $row["Voltage"] . "</td>
<td>" . $row["Current"]. "</td>
<td>"." <input type='hidden' name='getTime' value='" .$row["Date"]."' /></td>
<td>"." <input type='submit' name='timesubmit' value='select' class='classSubmit'"." </td>
</tr>";
$i++;
echo "</form>";
}
echo "</table>";
} else { echo "0 results"; }
问题是您没有引用日期值,应该引用所有元素属性值。我希望在 Web 源代码中看起来像这样:
<input type=hidden name=getTime value=2019-04-17 16:14:44>
应该是这样的
<input type="hidden" name="getTime" value="2019-04-17 16:14:44">
关于php - 如何使用数据库中的日期(包括时间)作为 php 表中隐藏字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56035576/