查找与一组数字特别匹配的行数

时间:2012-08-09 17:11:10

标签: php

我有一个棘手的问题,我找不到自己的答案。我正在使用带有MySQL v5.0.92-50-log和PHP v5.2.17的Web主机。

我有一个表,每行中有6个数字在不同的列中,还有一些列 - 名称等。

我知道有两件事要做:

1.如何遍历所有行并检查与特定数字集的匹配,如下所示:

$query = "SELECT * FROM tablename";
$result = mysql_query($query) or die();
$matchValues = array(1,2,3);
while($row = mysql_fetch_array($result)){
$counter = 0;
foreach($matchValues as $value)
{
    if(in_array($value, $row))
    {
        $counter++;
    }
}

然后我可以输出“name”字段和“counter”结果(1匹配,2匹配或3)。

2.我知道如何查找行数如下:

$result = mysql_query("SELECT * FROM $tablename WHERE status='Approved'"); $num_rows = mysql_num_rows($result);

诀窍是如何组合它们。我需要按照1进行搜索,然后输出名称字段和匹配数量,我需要知道有多少行有1个匹配,有多少行有2个,有多少行有3个。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

为了结合这两项任务,只需使用SELECT * FROM $tablename,然后有一个名为$approved_cntr的计数器,当您查看结果时,它会累积,检查是否$row['status'] == 'Approved'。这将为您提供已批准状态行数的等效值。

此外,查看mysqlimysql_PDO库符合您的最佳利益,因为您似乎使用的mysql_*函数已弃用。

MySQL(PDO)参考http://php.net/manual/en/ref.pdo-mysql.php

mysqli参考http://php.net/manual/en/book.mysqli.php