我使用的SQL代码:
SELECT band.bands, udgivelser.udgivelser, numre.numre
FROM diskografi
AS diskografi
INNER JOIN band
AS band
ON diskografi.FKband = band.id
INNER JOIN udgivelser
AS udgivelser
ON diskografi.FKudgivelser = udgivelser.id
INNER JOIN numre
AS numre
ON diskografi.FKnumre = numre.id
给我下表:
bands | udgivelser | numre
---------+-------------+---------
Muse | Showbiz | Sunburn
Muse | Showbiz | Muscle Museum
etc.
我使用以下PHP代码进行搜索功能:
if(isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysql_query("SQL FROM ABOVE INSERTED HERE
WHERE band.bands
LIKE '%$searchq%'")
or die("fejl i søgning!");
$count = mysql_num_rows($query);
if($count == 0){
$output == 'Der var ingen søgeresultater!';
}else{
while($row = mysql_fetch_array($query)){
$fband = $row['bands'];
$id = $row['ID'];
$output .= '<div> '.$fband.' </div>';
首先,我希望能够搜索表格,但只能将结果显示一次。我还希望它可以在这样的地方工作,当您在表udgivelser
和numre
中搜索内容时,它会显示bands
。
例如,如果我搜索Showbiz
,它会一次写出Muse
。
编辑:
using this thread经过深思熟虑,我找到了第一个问题的答案。不过,我仍然希望能够搜索udgivelser
和numre
,但结果会获得bands
。
我在此字符串后添加了GROUP BY id
SQL FROM ABOVE INSERTED HERE
WHERE band.bands
LIKE '%$searchq%'
GROUP BY band.bands