0

经过多次修改,我设法让我的代码工作,其中结果按第一个字母分组在一起,第一个字母也显示如下:

-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>";


}
4

1 回答 1

0

您第一次遍历它时不会自动重置结果集上的指针。因此,当您第二次尝试访问它时,它是空的/在集合的末尾。您应该阅读结果 PDOStatement 对象的工作原理。

这是一个类似的问题,它将让您了解如何解决这个问题。

于 2013-04-13T00:11:51.997 回答