0

まず、私が現在持っているものを示して、質問が(うまくいけば)明確になるようにします。

DBからデータを取得するための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:DBから取得したデータを台無しにするため、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 に答える