繁体   English   中英

PHP和SQL显示具有相同值的行

[英]PHP and SQL display rows with same value

我在SQL中有两个表格,例如http://www.sqlfiddle.com/#!2/1f1fb/2

该查询将获取所有必需的信息。 问题是我要显示这样的信息(所需的最终结果): 在此处输入图片说明

一些PHP代码:(如果查询有问题,可以对查询进行修改)

try{
    $db=new readPDO('username');
    $sql="
        SELECT test.SAME, test.Nationality, test.Name, test2.Job
        FROM test
        LEFT JOIN test2
        ON test.noID=test2.noID; 
    ";
    $statement=$db->prepare($sql);
    $statement->execute();
    if($statement->rowCount())
    {

        print"
            <table width='280' border='1'>
            ";
        while ($selector = $statement->fetch(PDO::FETCH_ASSOC))
            print"<tr><td>$selector[SAME]</td></tr>";
        print"
            </table>
            ";

    }   
    else
        print"Error";
} catch(PDOException $e)
{
    echo $e->getMessage();
}

当前结果 在此处输入图片说明

使用代码计数器来组合输出。 为了获得最佳结果,我建议您首先在查询中添加order by

SELECT test.SAME, test.Nationality, test.Name, test2.Job
FROM test
LEFT JOIN test2
ON test.noID=test2.noID
order by test.SAME asc
;

然后在PHP while循环中,使用一个计数器来计算要应用的行rowspan

$rowspanCounter = 1; 
$_same = '';
while ($selector = $statement->fetch(PDO::FETCH_ASSOC)){

   if($_same == $selector[SAME]){
   $rowspanCounter++;
   }
   else{
    $_same = $selector[SAME];
    $table_string .= "<tr><td rowspan=".$rowspan.">$selector[SAME]</td>";
    $rowspanCounter = 1;
      }
....//rest of the rows here.


 print"</tr>";
    }
    //outside the while loop
    print "</table>";

你在找这个吗?

  SELECT test.SAME , test.Nationality, test.Name, coalesce(test2.Job,'')jobb
  FROM test
  LEFT JOIN test2
  ON test.noID=test2.noID
  group by SAME , name
  order by same desc

这里的例子如何合并两行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM