-1

テーマパークを一覧表示するページがあります。「公園名」でソートすると、最初の文字が表示され、その後にその文字で始まる公園が表示されます。このような:

-A-
a park 1
a park 2

-B-
b park 1
b park 2 etc

「州」でソートするクエリもありますが、新しい各文字の最初の文字を表示する代わりに、php コードで州の名前を見出しとして表示し、その州の公園を一覧表示したいと思います。このような:

    -Florida-
    park 1
    park 2

    -Ohio-
    park 1 
    park 2 
-New York-
park 1

-North Carolina-
park 1
park 2
park 3 etc

最初の文字を表示するために使用されるコードは、ここに投稿された他の質問からまとめられました。私はphpの初心者で、誰かが完全な状態名を表示するようにコードを適応させるのを手伝ってくれることを願っています.

これは、状態でソートするための MySQL クエリです。

$sql = 'SELECT park_id, name, town, state, country
FROM tpf_parks WHERE country = "USA" AND type = "tp" ORDER BY state ASC, name ASC';
$result = $pdo->query($sql);

そして、これは現在、完全な州名を表示するために何らかの形で適応させる必要がある各新しい文字の最初を表示している php です:

<?php
$name = '';

foreach($result as $key=>$row){
    if(substr($row['state'],0,1)!=$name) echo '<br /><br />
<p class="indexletters">-<a name="'.substr($row['state'],0,1).'">'.substr($row['state'],0,1).'</a>-</p>';
    $name = substr($row['state'],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

1

コードsubstr($row['state'],0,1)は州の最初の文字を取ります。それらを実際の州名でグループ化したい場合は、 allsubstr($row['state'],0,1)を justに置き換えます$row['state']

于 2013-04-17T01:10:51.720 に答える