php - 在 php 中重新加载页面时,如何从输入中获取值并添加到 Sql 语句?

标签 php mysql pdo

示例

<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/

相关文章:

php - onchange 后下拉选择值重置

php - Ajax 调用后刷新页面/结果

php - 处理大格式输入中的 "Kill"

php - 无法获取每一行的总数

php - MySQL 相当于 mysql_num_rows。哪个更好?

php - 使用 "utf8_unicode_ci"在 PHP 中创建 MySQL 表

php - PDO_OCI - 进入 clob 字段

php - 使用表将 php 中的数据与 MySQL 中的数据按日期分开

php - PDO 相关的数据库错误

javascript - 自动完成数据库中的多个值