2012-08-09 78 views
0

我有一个棘手的问题,我找不到自己的答案。我正在使用MySQL v5.0.92-50-log和PHP v5.2.17的Web主机。找到与一组数字特别匹配的行数

我有一个表,其中每行中有6个号码在单独的列和一些列 - 姓名等

有两件事情我知道该怎么做:

1.How通过所有行循环,并检查其匹配到特定的一组数字的如下:

$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个。

任何帮助将不胜感激。

回答

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