次のクエリがあり、最初の一致のみをリストしたいと思います。
$first = $_GET['category'];
$first = $first[0] . "%";
$query = mysql_query("SELECT * FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
(?カテゴリ=b)
DISTINCT はこれを正しく行うことができますか? これは私が試したものですが、うまくいきませんでした:
$query = mysql_query("SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
編集:完全なコードは次のとおりです。
function getCategory() {
$first = $_GET['category'];
$first = $first[0] . "%";
$query = mysql_query("SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE 'B%'") or die(mysql_error());
//$query = mysql_query("SELECT * FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
if(mysql_num_rows($query) == 0) {
echo "Geen resultaten gevonden.";
} else {
while ($row = mysql_fetch_assoc($query)) { ?>
<p><a href="/<?= $_GET['category']; ?>/<?= strtolower($row['authorclean']); ?>/"><?= $row['author']; ?></a></p>
<?php }
}
}
(B% はテスト用です)
この次のクエリをデータベースで直接実行すると、2 つの結果が得られます。上記のコードを実行すると、空のページが表示されます (既に存在する html を除く)。
SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE 'B%'