0

私は独自のフォーラムを開発しており、date_timeで注文しようとしたときを除いてすべてが完全に機能しています。私のテーブル名は正しいので、すべてのフィールド名も正しいです!ORDER BY date_timeをクエリに追加するとPHPエラーが発生しますが、サイトの他の場所では完全に正常に機能するため、理由がわかりません。コードとエラーは次のとおりです。

// query responses
$sqlresponses = mysql_query("SELECT * FROM forum_replb ORDER BY date_time WHERE post_id='$disc_id'");
$responseList = "";
$numRows = mysql_num_rows($sqlresponses);
if ($numRows < 1) {
    $responseList = "There are currently no responses to this discussion/post yet! Add one above.";
} else {
    while($row = mysql_fetch_array($sqlresponses)){
        $response_author_id = $row["author_id"];
        $reply_body = $row["reply_body"];
        $date_time = $row["date_time"];
            $date_time = strftime("%b %d, %Y", strtotime($date_time));
        $responseList .= '<div id="sub_response_module"><p>' . $reply_body . ' -
        <a href="../profile.php?id=' . $response_author_id . '">' . $response_author_id . '</a> 
        | <i>' . $date_time . '</i></p></div>';
    }
}

エラー:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/public_html/lb/forum/post.php on line 49

明確にするために、49行目は$ numRows = mysql_num_rows($ sqlresponses);です。

4

2 に答える 2

3

ORDER BY句は、WHERE句の後にある必要があります。

SELECT * FROM forum_replb WHERE post_id='$disc_id' ORDER BY date_time

mysql_ファミリーの関数は非推奨になっていることにも注意してください。mysqli_関数を使用するか、場合によってはPDOを使用する必要があります。

于 2012-04-09T10:08:44.007 に答える
2

クエリに構文エラーがあります。WHEREの後にORDERBYを配置する必要があります。

mysql_query("SELECT * FROM forum_replb WHERE post_id='$disc_id' ORDER BY date_time ");
于 2012-04-09T10:08:09.410 に答える