【问题标题】:sql search using like not working使用like的sql搜索不起作用
【发布时间】:2013-08-30 11:39:27
【问题描述】:

我在网站上有一个搜索框,但是每当我们搜索时,它都没有给出任何输出。

我想从数据库中搜索页面标题。但是不知道怎么回事。

<div id="siteSearch">
    <h3>Site Search</h3>
    <?php
    if (isset($_POST['search'])) {
        $search = $_POST['search'];
        $query  = "SELECT * FROM pages WHERE ptitle LIKE '%$search%'";
        $result = mysql_query($query) or die(mysql_error());
        $count = mysql_num_rows($result);
        if ($count > 0) {
            while ($fetch = mysql_fetch_array($result)) {
                echo $fetch['ptitle'];
            }
        }
    } else {
        echo "No result found!";
    }
    ?>
</div>

【问题讨论】:

  • 文本输入有一个“占位符”属性,它有助于向用户提示它需要什么,并且让您无需编写所有 javascript 来清理它...
  • 你得到什么错误?
  • 我没有任何输出。如果我在 phpmyadmin 上运行 sql 查询,那么它可以正常工作并提供输出。
  • 所以它回显了No result found!?
  • 事实上我没有 else 条件,else { echo "No result found!"; }

标签: php mysql forms


【解决方案1】:

您在 while 循环后使用分号:

while($fetch = mysql_fetch_array($result));

请删除此行中的分号。

【讨论】:

  • 完成,[while($fetch = mysql_fetch_array($result))]。工作!
【解决方案2】:

您的右括号放错了位置。 else 上面的那个应该是下面的 5 行。按照目前的情况,else 子句与if (isset($_POST['search'])) 相关。

【讨论】:

  • 我不知道,但每个人都标记我的问题“这个问题没用”,而不是给出答案。真的很郁闷!
  • @Rohan 我想这主要是因为您没有尝试(或未能证明您尝试过)调试您的代码。请阅读此FAQ。特别是:“在提出问题之前,您是否彻底寻找答案?分享您的研究对每个人都有帮助。告诉我们您发现了什么以及为什么它不满足您的需求。这表明您已经花时间尝试提供帮助您自己,它使我们不必重复明显的答案,最重要的是,它可以帮助您获得更具体和相关的答案!”
  • 先生,我已经尝试在 stackoverflow 上进行大量搜索,但没有得到与我的查询相关的任何内容,这就是我与问题一起分享我的代码的原因。我也尝试使用 pre 标记并回显我的查询,但在输出中没有得到任何结果。这就是为什么需要你的支持。
  • @Rohan 很好,您应该将这些调试步骤添加到您的问题主体中:分享您的研究对每个人都有帮助,即使您没有成功,至少它允许裁决显而易见。
猜你喜欢
  • 2013-07-20
  • 2021-03-09
  • 2019-04-30
  • 1970-01-01
  • 2017-09-05
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多