0

我有一个棘手的问题,我自己找不到答案。我正在使用带有 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++;
    }
}

然后我可以输出“名称”字段和它的“计数器”结果(1 个匹配,2 个匹配或 3 个)。

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

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

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

任何帮助将不胜感激。

4

1 回答 1

1

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

mysqli此外,查看或mysql_PDO库符合您的最大利益,因为mysql_*您似乎正在使用的功能已被弃用。

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

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

于 2012-08-09T17:13:51.567 回答