示例
<div>
<label>From</label>
<input type=date name=from value="12-12-2017">
<label>To</label>
<input type=date name=to value="29-12-2017">
</div>
$query = $conn->prepare("SELECT * FROM Users WHERE age BETWEEN **From** and **To**")
$query->execute()
当页面第一次重新加载时,如何从输入中获取值并将其添加到 Sql 语句中? 提前致谢
最佳答案
这是仅在第一次提交的代码的工作示例。
由于只有 PHP/MySQLi
被标记,我们将举一个例子,用户在完成输入日期后必须按下按钮。
<?php
// session_start() has to be the first line of code
session_start();
$con = new mysqli($servername, $username, $password, $dbname);
// if there is NOT a valid POST request (means it is like a first visit)
if (!$_POST)
{
// if the session variable is set unset it
if(isset($_SESSION['beenHere'])) unset($_SESSION['beenHere']);
echo 'Status: This is a fresh start.<br/>';
}
else if(isset($_POST['from']) && isset($_POST['to']) &&
!empty($_POST['from']) && !empty($_POST['to']) &&
!isset($_SESSION['beenHere']))
{
// set the session variable to an arbitrary value, it's important it is set
$_SESSION['beenHere'] = 'This is the first submit';
// prepare the statement
$stmt = $con->prepare("SELECT * FROM Users WHERE age > ? AND age < ?");
// turn the input variables into proper date format and bind the to the ?
// dates are considered strings in prepared statements
$stmt->bind_param("ss", date('Y-m-d',strtotime($_POST['from'])), date('Y-m-d',strtotime($_POST['to'])));
$stmt->execute();
// Here you list all the output columns that you have. I only listed two example columns.
$stmt->bind_result($name, $age);
// loop for each returned row
while ($stmt->fetch())
{
// print the results
printf ("%s %s\n", $name, $age);
}
}
?>
<!-- Leave the action empty to POST to self -->
<form action="" method="POST">
<div>
<label>From</label><input type="date" name="from" value="" />
<label>To</label><input type="date" name="to" value="" />
</div>
<input type="submit" value="clickToEnter" />
</form>
注意:对于更高级的示例,您可以使用 javascript/jQuery
来设置 session 变量客户端。那么您就不需要POST
,因为您可以在$_SESSION
中存储有值(value)的信息并检查页面加载。
关于php - 在 php 中重新加载页面时,如何从输入中获取值并添加到 Sql 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48027993/