【问题标题】:Populate fields from database based on user input SQL根据用户输入 SQL 从数据库中填充字段
【发布时间】:2013-07-03 14:30:17
【问题描述】:

我有一个表单,用户输入他们的 ID,然后从数据库中填充他们的名字?有一个完整的表格我只是复制了相关部分和下面的sql。

User ID: <input value="User ID" name="user_id">

$sql = "SELECT user_firstname, user_surname FROM users_tbl WHERE xxxx = users_tbl.user_id"
$result = pg_query($sql);

我已经做到了这一点,但我不知道该怎么做。

【问题讨论】:

    标签: php sql forms populate auto-populate


    【解决方案1】:

    您应该过滤 GET 或 POST 表单变量。所以正确的方法是:

    $sql = "SELECT user_firstname, user_surname FROM users_tbl WHERE users_tbl.user_id= ".$_POST['user_id'];
    $result = pg_query($sql);
    

    别忘了从 sql 注入中过滤 POST 和 GET 变量

    【讨论】:

    • 这就是我认为的解决方法。我想必须先发送表格?然后将字段放入表单中的提交按钮变量中?
    • 是的,应该先发送表格。所有表单变量都将放在 $_POST 变量中
    【解决方案2】:

    你可能想要...

    page1.php

    <form method="POST" action="page2.php">
    User ID: <input name="user_id" value="User ID">
    <input type="submit" value="go">
    </form>
    

    page2.php

    $id = mysql_escape_string( $_POST['user_id'] );
    $sql = "SELECT `user_firstname`, `user_surname` FROM `users_tbl `WHERE `id` = '$id' LIMIT 1";
    ...
    

    【讨论】:

    • 我猜我也可以使用 Ajax
    • 确实,取决于页面上会发生什么变化。如果页面上只有少数元素发生变化(比如“登录/注册”变为“帐户/注销”),或者根本没有变化,那么 ajax 是更好的用户体验。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多