0

次のクエリがあり、最初の一致のみをリストしたいと思います。

$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%'
4

2 に答える 2

2

LIMIT 1最初の一致のみをリストするために使用する必要があります。

于 2012-04-15T12:12:44.733 に答える