0

mysql データベースからカテゴリを取得して表示しようとしていますが、それを php インクルードを介してインデックス ページに追加しています。

<?php //which category are we showing?
$category_id = $_GET['catid']; ?>

<h2>All Categories</h2>

<?php
//get 2 latest published posts
$query_latest = "SELECT title, body, date, category_id, post_id
                    FROM posts 
                    WHERE is_published = 1
                    AND category_id = $category_id
                    ORDER BY date DESC";

//run the query code on the DB
$result_latest = mysql_query( $query_latest );


//loop it, work with one post at a time
while( $row_latest = mysql_fetch_array( $result_latest ) ){  ERROR ROW 19
 ?>
<div class="post">
    <h2><?php echo $row_latest['title'] ?></h2>
    <h3>Posted on <?php echo $row_latest['date']; ?> in the category of something</h3>
    <p><?php echo $row_latest['body'] ?></p>
</div>
<?php } //end while loop ?>

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given 
in C:\xampp\htdocs\schellshockdesign.com\term5final\finalproject\category.php 
on line 19
4

3 に答える 3

1

データベースに接続していません。

また、mysql_fetch_array() の代わりに mysql_fetch_assoc() を使用する必要があります。

また、クエリで使用する変数には mysql_real_escape_string を使用する必要があります。

于 2012-07-08T02:34:01.167 に答える
0

これはあなたのために働くはずです

<h2>All Categories</h2>

<?php

$category_id = htmlspecialchars($_REQUEST["catid"]);
$category_id = preg_replace("/[^0-9]/","", $category_id);

//get 2 latest published posts

$SQL = "SELECT * FROM posts WHERE is_published = '1' AND category_id = '$category_id' ORDER BY date DESC LIMIT 2";
$result = mysql_query( $SQL );
while( $row = mysql_fetch_array( $result ) ) {
$category_id = $row["category_id"]; 
$post_id = $row["post_id"]; 
$title = $row["title"];
$body = $row["body"];   
$date = $row["date"];   

    echo '<div class="post">
    <h2>'.$title.'</h2>
    <h3>Posted on '.$date.' in the category of something</h3>
    <p>'.$body.'</p>
    </div>';
    }
    ?>
于 2012-07-08T05:09:40.843 に答える
0

以下の手順をお試しください。以下を使用してデバッグできる場合があります。

  1. クエリをエコーし​​、phpadmin で実行してみてください。そこで実行されている場合、問題はデータベース接続にあります。

  2. クエリが実行されない場合は、問題がクエリにあることを明確に示しています..フィールドが適切ではない、テーブル名が間違っている、データが間違っているなど、他の多くのフィールドが入力されています。

ありがとう

于 2012-07-08T06:37:18.443 に答える