Php 如何在if语句中为查询结果添加限制?
我使用了一个查询,在3个不同的区域显示结果。其中一个我不想设定限制,其中两个我想限制在一个。我在想,在这两个特定领域的每一个领域,我都可以在那里增加限制。我只是不知道怎么做,如果那是最好的方法 我的问题是: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
$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循环。您可以从查询本身应用限制条件。