如何在条件(PHP)中应用线性搜索

时间:2014-05-17 05:42:27

标签: php mysql

我有一个表格主题,有一个字段 subject_name 。在这里,我想将 subject_name 与我从全球GET获得的值匹配。

下面显示的是我尝试过的代码。在这里,我从另一页获取列表值。

global $list;
if(isset($_GET['U']))
{
    $list=$_GET['U'];
}

现在subject_name已尝试过以下代码。

    $subject=mysql_query('SELECT * FROM subject');
    while($row=mysql_fetch_array($subject))
    if($list==$row["subject_name"])
    {
        //execute this
    }

此处如何将$ list值与subject_name列表匹配?

2 个答案:

答案 0 :(得分:0)

如果$list是一个它可能是一个数组,你可以像这样使用array search

while($row=mysql_fetch_array($subject))
{
    $key=array_search($row["subject_name"], $list);
}

如果不是:

while($row=mysql_fetch_array($subject))
{
    if($list==$row["subject_name"])
    {
    //execute this
    }
}

答案 1 :(得分:0)

如果稍后在脚本中不需要与 匹配的行 ,那么您应该在查询时(在SQL中)过滤结果:

以下示例仅用于教育目的。 请勿在生产中使用!

<?php

mysql_query('SELECT * FROM subject WHERE subject_name IN ("' . implode('","', $list) . ')');

...产生如下查询:

SELECT * FROM subject WHERE subject_name IN ("subjectA", "subjectB"...)

通常的建议:

  1. 您的代码(以及我的代码)是begging for SQL injection,请勿在公开访问的应用程序中使用
  2. do not use the obsolete mysql_* functions
  3. 这是nice and safe solution with PDO prepared statements