PHP MYSQL - 如果表2中存在 table1.id 则突出显示数据库表行



我有点被困在这里一段时间,也许你们可以帮助我?我想突出显示来自一个表的数据库记录表,并检查该表中的 id 是否也存在于第二个表中。
让我更具体地说:

Table 1: Projects (projectid pk)
Table 2: Reservations (projectid fk)

一个简单的示例代码,以保持简单:

while( $record=mysql_fetch_array($result) ) 
{
    $projectid=$record['projectid'];
    echo "<tr>". $projectid ."</tr>; 
}

所以这工作得很好,我得到了数据库中存在的每个 projectid 的所有表行,但是如何将这$projectid变量传递给另一个查询,该查询检查另一个表中是否存在,如果存在,则回显出不同的东西?这是我的代码,可能没有多大意义,但至少逻辑是存在的......我希望?:

while( $record=mysql_fetch_array($result) ) 
{
    $projectid=$record['projectid'];
    $hasreservationquery = ("
                            SELECT * 
                            FROM reservelist rl
                                INNER JOIN project p on rl.projectid = p.projectid
                            WHERE rl.projectid = $projectid
                            ");
    $hasreservationqueryresult = mysql_query($hasreservationquery) or die(mysql_error());
    if ($hasreservationqueryresult > 1)
    {
    echo "<tr id='hasreservation'>";
    }
    else
    {
    echo "<tr>";
    }
    echo "". $projectid .""; 
}

不幸的是,这会返回突出显示的所有表,而不仅仅是真正有保留的表。我做错了什么??

提前谢谢。

您似乎从未检查过行计数。 您需要更改 if 语句:

if (mysql_num_rows($hasreservationqueryresult) > 0)

现在,这将检查是否返回了 1 个或多个结果(如果您希望在突出显示之前返回 x + 1 个结果,请将其更改为> x)。

mysql_query 不会返回受影响的行数。

我认为类似

if($hasreservationqueryresult &mysql_num_rows($hasreservationqueryresult)> 0)

除此之外,我肯定会更好地安排您的代码,并重新考虑您的变量名称:)

相关内容

  • 没有找到相关文章

最新更新