我有点被困在这里一段时间也许你们可以帮助我吗?我想突出显示一个数据库记录表,来自一个表,并检查该表中的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 ."";
}
不幸的是,这会返回突出显示的所有表格,而不仅仅是真正有预订的表格。我做错了什么?
提前致谢。
答案 0 :(得分:1)
您似乎没有检查行数。你需要改变你的if语句:
if (mysql_num_rows($hasreservationqueryresult) > 0)
现在将检查是否返回了1个或多个结果(如果您希望在突出显示之前返回x + 1个结果,请将其更改为&gt; x。)
答案 1 :(得分:1)
mysql_query不会返回受影响的行数。
我认为像
if($ hasreservationqueryresult&amp;&amp; mysql_num_rows($ hasreservationqueryresult)&gt; 0)
除此之外,我肯定会更好地安排您的代码,并重新考虑您的变量名称:)