好的,所以我有一个搜索代码,可以查看两个表。我知道歧义来自于两个表中都有一个列“title”(表名为disc track)。
现在我的修复就是这个。
$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不存在(当我只搜索其中一个表,它可以找到标题)
任何想法?
答案 0 :(得分:2)
运行$query="SELECT * FROM disc, track WHERE Artist LIKE '%$trimmed%'"
有效吗?
正是OR disc.Title
让你失望。
您需要完成disk.Title
表达式。 OR 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%'
)
答案 1 :(得分: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
您应该使用表信息/前缀进行所有连接并选择项目。