0

「cat_id」というmysqlテーブルがあります。

私のウェブサイトは、ページごとの文のリストを表示するようにコード化されています。しかし、私はまた、ページ上の文を表示するこれらのdivに、それらがそうであるカテゴリIDを表示させたいと思っています。

したがって、カテゴリはデータベースの0より上からのみ開始されます。では、「cat_id」が0より大きい場合、このコードを表示するというコンテンツが表示されるこれらのdivに、ifステートメントを作成して配置するにはどうすればよいでしょうか。

<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

からの戻り値$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 に答える