0

首先,我将展示我目前拥有的内容,以便(希望)问题很清楚。

我有一个 SQL 查询来从我的数据库中获取数据,如下所示:

$strSQL1        = "SELECT Klant.ID, Klant.Naam, Klant.Email, Klant.Soort, Subscriptions.Klant_ID, Subscriptions.Status, Subscriptions.Datum, Subscriptions.ID
                  FROM NAW.Klant 
                  JOIN NAW.Subscriptions 
                  ON Klant.ID = Subscriptions.Klant_ID,
                  (SELECT MAX(Subscriptions.ID) as ids, Klant_ID 
                  FROM NAW.Subscriptions
                  WHERE Mail_ID ='".$_GET["ID"]."'  
                  GROUP BY Klant_ID) table2
                  WHERE Subscriptions.ID=table2.ids"; 
$objQuery1      = mysql_query($strSQL1);

然后我将数据添加到如下所示的 HTML 表中:

<table width="700" border="1">  
<tr> 
   <th width="91"> <div align="center">ID  </div></th>  
   <th width="91"> <div align="center">Naam  </div></th> 
   <th width="91"> <div align="center">Email  </div></th> 
   <th width="91"> <div align="center">Soort  </div></th> 
   <th width="91"> <div align="center">Status  </div></th> 
   <th width="91"> <div align="center">Datum  </div></th> 
</tr> 
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?> 
<tr>  
   <td><div align="center"><?=$objResult1["Klant_ID"];?></div></td>
   <td><div align="center"><?=$objResult1["Naam"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Email"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Soort"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Status"];?> </div></td>
   <td><div align="center"><?=$objResult1["Datum"];?> </div></td>
<?php endfor; ?>
</table>  

该表当前显示此数据:

在此处输入图像描述 (这些都是编造的名字/电子邮件)

我的问题是,是否有办法只显示“状态”为 10 的行?使用“if”语句可能是可能的,但我不知道如何做到这一点。如果有人知道如何做到这一点或将我推向正确的方向,那就太好了。提前致谢!

注意:我知道我不应该使用 mysql_* 但因为我稍后会更改为 PDO,所以你们不必提及这个^^

注意 #2:我忘了补充一点,我不想更改我的 SQL 查询,因为它会弄乱我从数据库中获取的数据。(我知道这有点含糊,但我不知道如何解释)

4

4 回答 4

2
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) :
    if($objResult1["Status"]!= 10) continue;
?> 
于 2013-03-25T12:40:53.263 回答
0

将您希望强制执行的条件添加到您的 WHERE 子句中。

"SELECT Klant.ID, Klant.Naam, Klant.Email, Klant.Soort, Subscriptions.Klant_ID, Subscriptions.Status, Subscriptions.Datum, Subscriptions.ID
                  FROM NAW.Klant 
                  JOIN NAW.Subscriptions 
                  ON Klant.ID = Subscriptions.Klant_ID,
                  (SELECT MAX(Subscriptions.ID) as ids, Klant_ID 
                  FROM NAW.Subscriptions
                  WHERE Mail_ID ='".$_GET["ID"]."'  
                  GROUP BY Klant_ID) table2
                  WHERE Subscriptions.ID=table2.ids
                  AND Subscriptions.Status = 10"; 
于 2013-03-25T12:42:24.233 回答
0

尝试添加Subscriptions.Status = 10查询的 where 子句

$strSQL1        = "SELECT Klant.ID, Klant.Naam, Klant.Email, Klant.Soort, Subscriptions.Klant_ID, Subscriptions.Status, Subscriptions.Datum, Subscriptions.ID
                  FROM NAW.Klant 
                  JOIN NAW.Subscriptions 
                  ON Klant.ID = Subscriptions.Klant_ID,
                  (SELECT MAX(Subscriptions.ID) as ids, Klant_ID 
                  FROM NAW.Subscriptions
                  WHERE Mail_ID ='".$_GET["ID"]."'  
                  GROUP BY Klant_ID) table2
                  WHERE Subscriptions.ID=table2.ids AND Subscriptions.Status = 10"; 
$objQuery1      = mysql_query($strSQL1);
于 2013-03-25T12:43:07.513 回答
0

这是你要找的吗?

<?php
for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) :
if($objResult1p['Status'] == 10){
?>
<tr>  
   <td><div align="center"><?=$objResult1["Klant_ID"];?></div></td>
   <td><div align="center"><?=$objResult1["Naam"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Email"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Soort"];?> </div></td> 
   <td><div align="center"><?=$objResult1["Status"];?> </div></td>
   <td><div align="center"><?=$objResult1["Datum"];?> </div></td>
</tr>
<?php
}
endfor;
?>
于 2013-03-25T12:44:20.720 回答