PHP和SQL显示具有相同值的行
我在SQL中有两个这样的表 该查询获取所有必需的信息。问题是我想显示这样的信息,如所需的最终结果: 一些PHP代码:如果查询有问题,对其进行修改是可以的PHP和SQL显示具有相同值的行,php,Php,我在SQL中有两个这样的表 该查询获取所有必需的信息。问题是我想显示这样的信息,如所需的最终结果: 一些PHP代码:如果查询有问题,对其进行修改是可以的 try{ $db=new readPDO('username'); $sql=" SELECT test.SAME, test.Nationality, test.Name, test2.Job FROM test LEFT JOIN test2 ON test.
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循环中使用计数器计算要应用的行跨度
$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
下面是如何执行的示例以及执行代码时会发生什么情况?仅图像的第一行。将实际结果添加到代码中,以便我们可以看到。第一行的第一列应该是555吗?如果不是的话,为什么是最后的444,你如何决定它为什么会出现?不,对不起,应该是555,我在同一个问题上遇到了错误。注意:未定义的变量:_samefined一个错误现在。您必须在while循环之前初始化相同的变量$\u。