Php 如何在if语句中为查询结果添加限制?

Php 如何在if语句中为查询结果添加限制?,php,mysql,foreach,Php,Mysql,Foreach,我使用了一个查询,在3个不同的区域显示结果。其中一个我不想设定限制,其中两个我想限制在一个。我在想,在这两个特定领域的每一个领域,我都可以在那里增加限制。我只是不知道怎么做,如果那是最好的方法 我的问题是: $comments_query = "SELECT * FROM airwaves_comments aw,users u WHERE u.id=aw.from_id AND aw.FROM_id=aw.to_id AND aw.from_id=".$profile_id." order b

我使用了一个查询,在3个不同的区域显示结果。其中一个我不想设定限制,其中两个我想限制在一个。我在想,在这两个特定领域的每一个领域,我都可以在那里增加限制。我只是不知道怎么做,如果那是最好的方法

我的问题是:

$comments_query = "SELECT * FROM airwaves_comments aw,users u WHERE u.id=aw.from_id AND aw.FROM_id=aw.to_id AND aw.from_id=".$profile_id." order by aw.created_on desc" ;
以下是显示的结果,我不希望有限制

if ($airwave)
 {
 foreach ($airwave as $airwave_comment_row)
 {
// stuff
}
}
以下是显示的结果,我想限制为一个:

if ($airwave && $profile_id == $session_id)
            {
                foreach ($airwave as $airwave_comment_row)
                {
                    echo "<div id='profile_airwave'>";
                    echo $airwave_comment_row['comment'];
                    echo "<br />";
                    echo "<span class='profile_airwave_info'>"; 
                    echo $airwave_comment_row['created_on'];
                    echo "</span>";
                    echo "</div>";
                }
}
if($airvave&&$profile\u id==$session\u id)
{
foreach($Airway作为$Airway\u comment\u行)
{
回声“;
echo$Airway_comment_row['comment'];
回声“
”; 回声“; echo$Airway_comment_row['created_on']; 回声“; 回声“; } }
这是否可能,让他们共享同一个查询?还是我必须写一个新的查询

谢谢

我认为您可以使用查询,但您需要检查这是否是最好的方法—是否有效

我会检查一下,但我目前没有访问MySQL服务器的权限

(SELECT * FROM table WHERE category = 1)
UNION
(SELECT * FROM table WHERE category = 2 LIMIT 10)
UNION
(SELECT * FROM table WHERE category = 3)

Anthony.

您可以这样更改查询

$comments_query = "SELECT * FROM airwaves_comments aw,users u WHERE u.id=aw.from_id AND aw.FROM_id=aw.to_id AND aw.from_id=".$profile_id." order by aw.created_on desc" ;
if($profile_id == $session_id){
$comments_query .= " LIMIT 0,1"
}
你可以用同样的逻辑来尝试

    if ($airwave && $profile_id == $session_id)
         $airwave_comment_row = $airwave[0];
         // takes the first row
    }else if($airwave){
    foreach ($airwave as $airwave_comment_row)
       {
        // stuff
       }
   }

如果您只想一次显示其中一个,否则,请将它们全部加载到一个数组中(正如您所做的那样),如果您只想显示一个,则只需显示
$airvave\u comment\u row[0]
,否则通过
foreach
进行循环。换句话说,如果您只需要一个循环,那么就不需要(也不需要)foreach循环。您可以从查询本身应用限制条件。