【问题标题】:How to make PHP makes this query如何使 PHP 进行此查询
【发布时间】:2014-09-02 11:50:23
【问题描述】:

在学习 PHP 的过程中,自然而然地,我决定在我的网页上创建一个搜索功能。但是我想让我的更独特,所以我创建了两个 html 选择标签,允许用户选择两个选项并根据它进行搜索,而不是只使用一个简单的 html 输入字段作为“搜索”字段。我设法让 php 生成搜索查询,但这不是我想要的 sql 查询。我的 php 代码设法生成了一个查询帽,如下所示:.com/results.php?option1=london&option2=car 而理想情况下,我希望它生成如下内容:.com/results.php?combinedoptions=london+car 我已经对此进行了彻底的研究,我不想在这个网站上问一个非常简单的问题。

    $input = $_GET['input'];
    $topic = $_GET['topic']; 
    $location = $_GET['location'];
    $combined = $input . $topic . '' . $location;
    $terms = explode(" ", $combined);
    $query = "SELECT * FROM search WHERE ";
    foreach ($terms as $each){
        $i++;
        if ($i == 1)
            $query .= "keywords LIKE '%$each%'";
        else
            $query .= "OR keywords LIKE '%$each%'";
    }

【问题讨论】:

  • 欢迎来到 SO。由于这是一个编程问题网站,强烈建议您发布实际代码、示例结果和/或所需结果等。
  • 抱歉,我已经添加了我的代码。
  • 您是否无法以您想要的方式从表单中获取输入?或者您在处理服务器端表单的输入时遇到问题?另外,这两个选项的目的是什么?您能否举例说明用户输入以及基于该输入的预期结果?

标签: php mysql sql search


【解决方案1】:

您只需拆分传入的字符串。这是一段代码:

<?php
    $combinedoptions = 'london+car';
    $array = explode("+", $combinedoptions);
    if (sizeof($array) != 2) { /*problem here*/ echo 'bad parameters'; return; }
    $option1 = $array[0];
    $option2 = $array[1];
?>

只需使用explode() 方法。 Compiled code.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2013-05-30
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多