如何使用 PHP 在 html 中使用 SELECT 标记查询我的 SQL 数据库

Posted

技术标签:

【中文标题】如何使用 PHP 在 html 中使用 SELECT 标记查询我的 SQL 数据库【英文标题】:How do I use PHP to query my SQL database using SELECT tag in html 【发布时间】:2017-02-11 18:35:31 【问题描述】:

基本上我想使用用户从不同的选择标签中选择的选项,并且本质上将它们存储为变量,然后我可以使用这些变量在 SQL 中查询我的数据库。

我的 html 代码在这里:

<div id ="search_elements">

    <img  src="UniSelect.jpeg">

    <select>
        <option selected disabled>Select a university</option>
        <option value="ucl">UCL</option>
        <option value="kings">Kings College</option>
        <option value="imperial">Imperial College</option>
        <option value="lse">London School of Economics</option>
    </select>

    <img  src="PriceSelect.jpeg">

    <select>
        <option selected disabled>Select a weekly rent price</option>
        <option value="50">0-£50</option>
        <option value="100"> £100-£150</option>
        <option value="150">£150-200</option>
        <option value="200"> £200+</option>
    </select>
</div>

我希望使用的 php 类型是:

//$con=mysqli_connect("localhost","adam","YjM3ZTYwOTQ5OWRmYWZh","adam_...");
//if (mysqli_connect_errno())
//  
//     echo "Failed to connect to MySQL: " . mysqli_connect_error();
//  

// Perform queries 
//$sql=mysqli_query($con,"SELECT CONTENT FROM Blog WHERE ID = 01");
//$result=mysqli_fetch_assoc($sql);

//echo $result['CONTENT'];
//mysqli_close($con);

为了再次明确,我想使用用户选择的不同值,在单击搜索按钮时,将这些查询结果显示在表格中。

【问题讨论】:

嗯...您想要大学的价值和租金价格? 是的,我想存储和使用每个选择元素中的一个值。所以一个大学和一个租金价格 &lt;form&gt; 中有这些选择吗? 为每个选择标签添加名称属性 除了 Edvin 关于在用于 SQL 之前正确转义数据的 cmets 之外,您可能希望看看 PDO - 它与 mysqli 一样易于使用 - 但提供了连接到大量不同的数据库引擎。在一个实例中,我在 MySQL、SQLite 和 SQLServer 下运行完全相同的代码——这 3 种安装中唯一不同的是连接字符串——一行代码。 【参考方案1】:

此解决方案与您的解决方案略有不同,因为您没有提供表单、提交按钮等,但总的来说,经过一些更改,它也应该可以工作:

<form method="post" action="">
    <img src="UniSelect.jpeg">

    <select name="university">
        <option selected disabled>Select a university</option>
        <option value="ucl">UCL</option>
        <option value="kings">Kings College</option>
        <option value="imperial">Imperial College</option>
        <option value="lse">London School of Economics</option>
    </select>

    <img src="PriceSelect.jpeg">

    <select name="rent_price">
        <option selected disabled>Select a weekly rent price</option>
        <option value="50">0-£50</option>
        <option value="100"> £100-£150</option>
        <option value="150">£150-200</option>
        <option value="200"> £200+</option>
    </select>

    <input type="submit" value="Submit form">
</form>

现在,要获取这些值(类似这样,我建议将其放在表单上方):

if (!empty($_POST)) 
    // Checking connection in here

    $university_id = mysqli_real_escape_string($con, $_POST['university']);
    $rent_price = mysqli_real_escape_string($con, $_POST['rent_price']);

    $sql = mysqli_query($con, "SELECT * FROM university WHERE name = '".$university_id."'");
    $result = mysqli_fetch_assoc($sql);
    // Same thing goes for rent price

【讨论】:

我不能使用遵循标准查询语法的格式,所以“SELECT university FROM TABLENAME WHERE....”等 对不起,我不太明白你的评论。你能解释更多吗? 你是这个意思吗?:SELECT university FROM tableName WHERE university = $_POST["university"](等等)?但不要忘记转义变量。 是的!类似的东西,但它在实践中如何使用正确的语法? 这实际上是一个正确的语法。只是为了在此查询之前转义写:$_POST["university"] = $con-&gt;real_escape_string($_POST["university"]);(实际上,最好分配给一个新变量,而不是覆盖,但现在让我们保持原样以避免混淆。更好的解决方案是:$university = $con-&gt;real_escape_string($_POST["university"]); 然后使用$university 在我的书面查询中)。

以上是关于如何使用 PHP 在 html 中使用 SELECT 标记查询我的 SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

总结6.5PHP与数据库

总结6.5PHP与数据库

如何借助 .htaccess 设置在 HTML 文件中使用 PHP7 代码

php运算后输出的数值如何在html中使用?

如何在 PHP 中使用 SMTP 发送 HTML 电子邮件

如何使用 php 从 HTML 表中提取数据