PHP和SQL - 搜索连接表并获得单个结果

时间:2014-04-08 19:31:05

标签: php mysql sql search phpmyadmin

我使用的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>';

首先,我希望能够搜索表格,但只能将结果显示一次。我还希望它可以在这样的地方工作,当您在表udgivelsernumre中搜索内容时,它会显示bands。 例如,如果我搜索Showbiz,它会一次写出Muse

编辑:
using this thread经过深思熟虑,我找到了第一个问题的答案。不过,我仍然希望能够搜索udgivelsernumre,但结果会获得bands

我在此字符串后添加了GROUP BY id

SQL FROM ABOVE INSERTED HERE 
WHERE band.bands
LIKE '%$searchq%'
GROUP BY band.bands

0 个答案:

没有答案