2011-04-10 71 views
0

试图在查询后过滤结果。需要在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,查询后的php mysql过滤器

代码 - 主题字符串发现是$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++; 
} 

回答

1

你完全做了错误的方式。

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

只是想与我有什么工作...可以不会移动到关系表,而且查询也非常复杂,我已经发布了2个关于如何将搜索添加到它的问题,但没有人提供了一个可行的解决方案...所以我试图用条件事实......他们不得不进入阵列。你能帮助解决当前的问题吗? – Jeffrey 2011-04-10 08:37:23

0

虽然我与Col.弹片答案达成一致,在特定情况下,你正在寻找的strpos功能,如果你真的想这样做在PHP

+0

我试过了strpos,也爆炸了,它们返回了很多空的$结果。 – Jeffrey 2011-04-10 08:44:38

+0

你可以用你试过的和失败的信息更新你的问题吗? – ChrisWue 2011-04-10 08:51:09

+0

在数据库查询中算出来......必须删除sprintf – Jeffrey 2011-04-10 09:15:58