我有一个棘手的问题,我找不到自己的答案。我正在使用带有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 个。
任何帮助将不胜感激。
为了组合这两个任务,只需使用SELECT * FROM $tablename
,然后有一个名为$approved_cntr
的计数器,该计数器会在您浏览结果时累积,检查是否$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