Php 尝试通过id将联合搜索查询链接到源时,联合搜索查询没有结果输出

Php 尝试通过id将联合搜索查询链接到源时,联合搜索查询没有结果输出,php,mysqli,union,Php,Mysqli,Union,我的数据库中有4个表。我使用union搜索所有表以输出结果。它按预期工作,但是当我尝试识别源以将href链接添加到所需的输出页面时,我没有得到任何结果。我的代码如下 我尝试添加一个文本字符串。我试着在没有任何运气的情况下添加别名 <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); include'db.php'; if(!empty($_POST

我的数据库中有4个表。我使用union搜索所有表以输出结果。它按预期工作,但是当我尝试识别源以将href链接添加到所需的输出页面时,我没有得到任何结果。我的代码如下

我尝试添加一个文本字符串。我试着在没有任何运气的情况下添加别名

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include'db.php';
if(!empty($_POST))
{
      $aKeyword = explode(" ", $_POST['keyword']);
      $query ="SELECT *,'articles' as source FROM tbl_articles WHERE name like '%" . $aKeyword[0] . "%'
      UNION 
      SELECT  *, 'tbl_album' as source FROM tbl_album WHERE name like '%" . $aKeyword[0] . "%'
      UNION 
      SELECT  *, 'tbl_gallery' as source FROM tbl_gallery WHERE gname like '%" . $aKeyword[0] . "%'
      UNION 
      SELECT  *, 'tbl_events' as source FROM tbl_events WHERE name like '%" . $aKeyword[0] . "%'";

     for($i = 1; $i < count($aKeyword); $i++) {
        if(!empty($aKeyword[$i])) {
            $query .= " OR name like '%" . $aKeyword[$i] . "%'";
        }
      }

     $result = $db->query($query);
     echo "<br>You have searched for keywords: " . $_POST['keyword'];

     if(mysqli_num_rows($result) > 0) {
        $row_count=0;
        echo "<br>Result Found: ";

        While($row = $result->fetch_assoc()) {   
            $row_count++;
            if($row == 'source') 
            echo "<p><a href='result1.php?artid=".$row["artid"]."'>".$row["name"]."</a></p>";
            } 
            else if($row == 'source') 
            {
            echo "<p><a href='result2.php?id=".$row["albumid"]."'>".$row["name"]."</a></p>";
            }
            else if($row =='source')
            {
            echo "<p><a href='result3.php?gid=".$row["gid"]."'>".$row["gname"]."</a></p>";
            }  

        }

    }
    else {
        echo "<br>Result Found: NONE";
    }
}

?>


我需要将正确的ID传递到它们各自的结果页面,例如tbl_文章到results1.php,tbl_相册到results2.php,tbl_事件到results3.php等。当前运行查询时,我没有得到任何结果。

我让它正常工作。由于union运算符合并了结果集,因此我无法使用其他列id名称。我需要使用第一个查询id名称,现在一切正常。

$row将是一个包含行数据的数组,而不是字符串,因此我不确定
$row=='source
应该做什么。那些
if
s是否应该更像
if($row['source']=='tbl\u events')
?这就是我一直坚持的部分。如何识别表并将id作为href链接传递。我会给你一个建议,我现在就得到结果,但是我收到了以下错误通知:未定义索引:我们的代码没有显示索引
id
,所以可能在其他地方,或者可能你有打字错误?谢谢@Jonnix的帮助