我有一个有会员加入的数据库,我正在尝试显示每个国家的会员数量。
这是我用来显示国家标志的代码:
<?
foreach( $sorters as $sortvalue )
if( $sortvalue == '' )
echo '<li> <a href="' . $list_url . $connector . $sortfield .
'=none">None given</a> </li>';
else
echo '<a href="' . $list_url . $connector . $sortfield .
'=' . $sortvalue . '"><img src="' . $flags . str_replace(' ', '_', $sortvalue) . '.gif" title="' . $sortvalue . '" alt="' . $sortvalue . '"></a> ' . $countrynum . ' fans<br>';
}
?>
我确实在寻找答案,并且不断看到相同类型的代码,但是我一直无法让它为我工作。
我已经试过了:
$countrynum = SELECT COUNT(name) FROM $table WHERE country = $sortvalue;
我在foreach语句之后插入的。这个(以及我尝试过的所有其他迭代都给我解析错误:语法错误,...中出现意外的“ COUNT”(T_STRING)...
解决这个问题最接近的方法是使用以下代码(尽管我应该不必重新连接到数据库吗?):
<?
foreach( $sorters as $sortvalue )
if( $sortvalue == '' )
echo '<li> <a href="' . $list_url . $connector . $sortfield .
'=none">None given</a> </li>';
else
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
foreach($dbh->query('SELECT country, COUNT(*) FROM $table GROUP BY country') as $row) {
echo '<a href="' . $list_url . $connector . $sortfield .
'=' . $sortvalue . '"><img src="' . $flags . str_replace(' ', '_', $sortvalue) . '.gif" title="' . $sortvalue . '" alt="' . $sortvalue . '"></a> ' . $row['COUNT(*)'] . ' fans<br>';
}
?>
这给了我正确的行(成员)计数,但是在每个数字旁边显示了相同的单个标志,而不是带有成员数目的相应标志。
我敢肯定,对于大多数人来说,这可能是非常简单的,但是我是一个真正想学习编码的新手,到目前为止,这主要意味着剪切,粘贴和大量尝试和错误。
任何帮助(和学习资源建议)将不胜感激。 :)
最佳答案
由于标志图像源取决于$sorters
和$sortvalue
,因此在所有国家/地区都相同。看循环。对于每个$sorters as $sortvalue
,该链接将是多个国家/地区,但所有国家的img
来源都相同。
关于php - 按组列出行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42689673/