-3

わかりましたので、2 つのテーブルを検索する検索コードがあります。あいまいさは、両方のテーブル (ディスク トラックという名前のテーブル) に「タイトル」という列があるという事実から来ていることを知っています。

今私の修正はこれでした。

$query="SELECT * FROM  disc, track WHERE Artist LIKE '%$trimmed%' OR disc.Title LIKE 

'%$trimmed%' OR Year LIKE '%$trimmed%' OR Genre LIKE '%$trimmed%' LIMIT 0, 30";

.

 Notice: Undefined index: disc.Title in C:\xampp\htdocs\search.php on line 61

私はあらゆる場所を検索してきましたが、どこに行ってもそのコードは正しいと言われています。しかし、検索を実行するたびに、disc.Title does not exist と表示されます (表の 1 つだけを検索すると、Title を見つけることができます)。

何か案は?

4

2 に答える 2

2

実行$query="SELECT * FROM disc, track WHERE Artist LIKE '%$trimmed%'"しますか?

それはOR disc.Titleあなたを捨てているのです。

式を完成させる必要がありますdisk.TitleOR disc.Title LIKE '%$trimmed%'

また、SQL の実行に関する限り、結合を明示的に記述する必要があります。

SELECT * 
FROM disc
INNER JOIN track
    ON disk.id = track.disk_id
WHERE (
    [disk or track?].Artist LIKE '%$trimmed%' 
    OR disc.Title LIKE '%$trimmed%'
)
于 2013-05-11T23:38:32.033 に答える
0
SELECT d.*, t.* FROM  disc d, track t WHERE t.Artist LIKE '%$trimmed%' OR d.Title LIKE '%$trimmed%' OR Year LIKE '%$trimmed%' OR t.Genre LIKE '%$trimmed%' LIMIT 0, 30

すべての結合項目と選択項目にテーブル情報 / プレフィックスを使用する必要があります。

于 2013-05-11T23:38:16.507 に答える