【问题标题】:php mysql filter after query查询后的php mysql过滤器
【发布时间】:2011-08-02 09:46:52
【问题描述】:

尝试在查询后过滤结果。需要在 tinytext 字符串中找到一个字符串。看起来像:accounting, ACT, algebra 1, algebra 2, American history, biology, calculus, economics, English, European history, geometry, grammar, literature, piano, proofreading, psychology, reading, SAT math, SAT reading, SAT writing, statistics, violin, vocabulary,

代码 - 要查找的主题字符串是 $subject,要搜索的列表是 $row['SubjectList']

$result = mysql_query($query, $dbConn);
$i=0;
while ($row = @mysql_fetch_assoc($result)){
    $results[$i]['Name'] = $row['Name'];
    $results[$i]['Zip'] = $row['ZipCode'];
    $results[$i]['SubjectList'] = $row['SubjectList'];
    $i++;
}

【问题讨论】:

    标签: php mysql arrays search explode


    【解决方案1】:

    你的做法完全错误。

    1. 这样的过滤应该在 DB 端完成,而不是在 PHP 中。
    2. 这些主题不应该这样存储,而应该存储在关系表的单独字段中。

    【讨论】:

    • 只是尝试使用我所拥有的...无法移动到关系表,而且查询非常复杂,我已经发布了 2 篇关于如何添加此搜索的文章,但是没有人给出一个可行的解决方案......所以我试图在事后用条件过滤......无论如何它们都必须进入一个数组。你能帮忙解决当前的问题吗?
    【解决方案2】:

    虽然我同意上校 Shrapnels 的回答,但在您的具体情况下,如果您真的想在 PHP 中执行它,您正在寻找 strpos 函数

    【讨论】:

    • 我已经尝试过 strpos 并且也爆炸了,它们返回了很多空的 $results。
    • 你能用你尝试过的和失败的信息更新你的问题吗?
    • 在 db 查询中发现...必须删除 sprintf
    猜你喜欢
    • 2013-05-01
    • 2017-06-15
    • 1970-01-01
    • 2011-01-06
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多