经过多次修改后,我设法让我的代码工作,结果按第一个字母组合在一起,第一个字母也显示如下:
-A-
Alton Towers
-C-
Cedar Point
Chessington
等
我已将这些字母标题转换为HTML锚点。我现在要做的是运行类似的代码,只显示页面顶部一行中的第一个字母,这些字母是每个锚点的链接。我无法让代码工作。如果我复制代码并将其修改为仅显示字母,则不会显示原始查询列表。有人可以帮忙吗?下面是用于显示带有字母标题的查询结果的代码。
try
{
$sql = 'SELECT park_id, name, town, state, country
FROM tpf_parks ORDER BY name ASC';
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching parks: ' . $e->getMessage();
//include 'error.html.php';//
exit();
}
$name = '';
foreach($result as $key=>$row){
if(substr($row['name'],0,1)!=$name) echo '<br /><br /><h1>-<a name="'.substr($row['name'],0,1).'">'.substr($row
['name'],0,1).'-</h1></a>';
$name = substr($row['name'],0,1);
echo "<a href='park.php?park_id=".$row['park_id']."'>
<h2>".$row['name']."</h2>
<h3>".$row['town'].", ".$row['state'].", ".$row['country']."</h3></a><hr>";
}
答案 0 :(得分:0)
第一次循环时,它不会自动重置结果集上的指针。因此,当您第二次尝试访问它时,它是空的/在集合的末尾。您应该了解结果PDOStatement对象的工作原理。
Here is a similar question that is going to give you an idea of how to solve this.