2

非常に基本的なphpの質問があります。データベースからデータをフェッチし、行ごとにスタイルを設定して印刷しています。問題は、これらのデータがニュースを表しているため、逆の順序で印刷したいということです(フェッチした最後の行を最初に印刷する必要があります)。テーブル全体を一度にフェッチして、逆関数を適用できるかどうかはわかりません(試しましたが、機能しませんでした)。

これが私のコードです:

<?php
                include 'dbconnect.php';
                $data = mysql_query("SELECT * FROM news") or die(mysql_error()); 

                while($info = mysql_fetch_array( $data )) 
                {
                echo '<article><h3> '.$info['subject'].'</h3><div id="date">'.$info['date']. '</div>';
                echo '<p>'.$info['news']. '</p></article>';

                } 
?>

私はこのようなことを試みました:

$data = [];
array_push($array, $info);

whileループ内で印刷しましたが、機能しませんでした。答えてくれてありがとう!

4

6 に答える 6

3

後でphpで行うのではなく、SQLで直接行う必要があります。

SELECT * FROM news ORDER BY date DESC

mysql_*関数は非推奨になっているため、PDO(またはmysqli)にも切り替える必要があります。

于 2013-03-25T14:41:09.923 に答える
2
"SELECT * FROM news ORDER BY id DESC"

すべてのニュースのIDがある場合は、これを使用できます。

于 2013-03-25T14:41:28.630 に答える
2

これを試して:

$data = mysql_query("SELECT * FROM news ORDER BY date DESC") or die(mysql_error());
于 2013-03-25T14:42:11.617 に答える
0

PHPのarray_reverse()関数またはmysqlクエリのORDER BYid(or time/date column) DESC

于 2013-03-25T14:41:01.970 に答える
0
mysql_query("SELECT * FROM news ORDER BY date DESC")

それがあなたが探しているものだと思います。

于 2013-03-25T14:42:51.760 に答える
0
$query = "SELECT * FROM news ORDER BY date DESC";
$data = mysql_query($query) or die(mysql_error());
于 2013-03-27T08:44:33.750 に答える