0

我有一个名为“cat_id”的 mysql 表。

我的网站被编码为每页显示一个句子列表。但我也希望这些在页面上显示句子的 div 来显示它们的类别 ID。

因此,类别仅从我的数据库中的数字 0 开始。那么我将如何制作一个 if 语句,并将其放在显示内容的这些 div 中,如果“cat_id”高于 0,则它显示此代码。

<div class="meta">
<small class="float-left gray">
Your Category: <a href="<?=$u?>categories/<?=$cat_record['cat_id']?>/<?=$page_no?>"><?=stripslashes($cat_record['cat_id'])?></a>
</small>
</div>   
4

3 回答 3

2

所以我假设这段代码是从查询体中提取的,如果是这样,你可以在它周围包装一个 if 语句

<?php if ($cat_record['cat_id'] > 0): ?>
    <div class="meta">
    <small class="float-left gray">
    Your Category: <a href="<?=$u?>categories/<?=$cat_record['cat_id']?>/<?=$page_no?>"><?=stripslashes($cat_record['cat_id'])?></a>
    </small>
    </div>   
<?php endif; ?>
于 2012-10-03T23:10:21.487 回答
1

我猜您的返回值 from$cat_record['cat_id']被解释为字符串,因此不能用于 if 语句中的整数比较。

尝试转换为整数并进行比较。

$cat_int = intval($cat_record['cat_id']);
if($cat_int>0)
{
     //Code here
}
于 2012-10-03T23:11:06.853 回答
0

您当然可以从数据库中获取所有条目,并在您的 php 代码中使用条件来仅显示 cat_id>0 的条目,但我认为仅从数据库中检索您首先需要的条目会更简洁SQL 语句中的 WHERE 子句。

尝试以下操作:

<?php
    //Get results above 0
    $query="SELECT * FROM tablename WHERE cat_id>0";
    $result=mysql_query($query);
    $cat_records=array();
    while($row=mysql_fetch_array($result)) $cat_records[]=$row;

    //Loop through results to display the div
    foreach($cat_records as $cat_record){
        echo '<div class="meta"><small class="float-left gray">Your Category: <a href="'.$u.'categories/'.$cat_record['cat_id'].'/'.$page_no.'">'.stripslashes($cat_record['cat_id']).'</a></small></div>';
    }
?>
于 2012-10-03T23:20:26.297 回答