0

タイトルの単一のクエリは機能しますが、タイトルのある曲が複数存在します。そのため、アーティストを含む新しいクエリは機能しません。曲のタイトルの正確な検索は正しく、単一のクエリで機能しますが。

私は何を間違っているのですか

            //$checkTitle = mysql_query("SELECT * from lyrics WHERE title = '$querytitle'");
            $checkTitle = mysql_query("SELECT * FROM lyrics WHERE artist = '$queryArtist' AND title = '$queryTitle'");
            $result = mysql_fetch_array($checkTitle);
            if (!$checkTitle) {
                die('Query Failed');
            } 
            if ($result['title'] == $querytitle)  {
            ?><div id='message'>Song Titled Already Exist <?php echo $cleanTitle; ?> by Artist : <? echo $artist; ?></div><br><br><?
            } else {
            ?><div id="message">Song Titled : <?php echo $cleanTitle; ?> has been added to the database! - <a href="<?php echo $siteURL; ?>artist.php?aid=<?php echo $artist; ?>" target="_Blank">View Artist Page</a></div><br /><br /> <?php echo $queryArtist; ?><?
            print_r($result); // the data returned from the query
            }
4

3 に答える 3

0
SELECT * from lyrics WHERE artist = '$artist' AND title = '$title'

..またはそのようなもの..

于 2012-11-07T20:31:26.160 に答える
0

あなたが投稿した他の質問からそれを理解したことはないようです。このクエリを使用してみてください:

SELECT * FROM lyrics WHERE artist = '$artist' AND title = '$queryTitle'

次に、1つの結果のみを期待している場合は、次のようなものを使用してそれを利用できます。

$query = "SELECT * FROM lyrics WHERE artist = '$artist' AND title = '$queryTitle'";
$checkTitle = mysql_query($query);
// assuming you have one result:
$row = mysql_fetch_array($checkTitle)
if ($row['title'] == $querytitle) {
    echo "<div id='message'>Song Titled Already Exist $cleanTitle by Artist : $cleanTitle</div><br><br>";
}
于 2012-11-07T20:32:34.553 に答える
0

コメントが述べているように、データベースはこれをより速く、より簡単に行うことができるので、これはひどく非効率的です。

SELECT * from lyrics WHERE artist = '$artist' AND title = '$queryTitle'

(アーティスト、タイトル)にインデックスを付けることで、これをさらに改善できます。

また、SQLインジェクションから身を守るために、このクエリを実行する前にmysql_real_escape_string、両方$artistを確認してください。$queryTitle

于 2012-11-07T20:33:11.990 に答える