2016-11-29 6 views
0

私はphpMyAdminでデータベースに追加された最後の3レコードを読むための簡単なPHPファイルを作成しています。私が直面している問題は、最後の3つのレコードを昇順で欲しいということです。降順でしかレコードを取得できません。私はいくつかの他の人のために働いたが、phpMyAdminで私のために働いていない次のコードを試してみました。mySQLとPHPを使用して、データベースから最後の3つのレコードを昇順に取得する

SELECT * FROM (
    SELECT * FROM studio ORDER BY studioId DESC LIMIT 3 
) 
ORDER BY studioId; 

これはコードをPHPファイルに実装した方法です。私はこのラインで上記のコードの最初の行を交換する際に上記のコードはのみ動作し、いくつかの理由で

$sql = "SELECT * FROM (SELECT * FROM studio ORDER BY studioId DESC LIMIT 3) ORDER BY studioId"; 
$query = mysqli_query($conn, $sql); 
if (mysqli_num_rows($query) > 0) { 
    while($row = mysqli_fetch_assoc($query)) { 
     echo $row["studioName"]." ".$row["studioAddress"]." ".$row["studioPCode"]." ".$row["studioTelNo"]."<br/>"; 
    } 
} else { 
    echo "There Are No Studios Added"; 
} 

$sql = "SELECT * FROM studio ORDER BY studioId DESC LIMIT 3"; 

これは私がテーブルスタジオの作成に使用したコードです。

CREATE TABLE Studio (  
    studioId INT(5) NOT NULL,  
    studioName VARCHAR(50) NOT NULL,  
    studioAddress VARCHAR(50) NOT NULL,  
    studioPCode VARCHAR(7) NOT NULL,  
    CONSTRAINT 
     ck_studioPCode CHECK(studioPCode LIKE '___ ___'),  
     studioTelNo VARCHAR(11) NOT NULL,  
     CONSTRAINT ck_studioTelNo CHECK(LEN(studioTelNo) = 11),  
    PRIMARY KEY(studioId),  
    UNIQUE(studioName)  
); 

答えて

0

使用エイリアシング、これは

$sql = "SELECT * FROM (SELECT * FROM studio ORDER BY studioId DESC LIMIT 3) AS stdId ORDER BY studioId"; 

はこのコードを試してみて、それはまだあなたは、クエリの下に必要

+0

はいこの作品は、Rahulに感謝しています。ほんとうにありがとう。 –

+0

お役立ち情報 – Rahul

0

を働いていないなら、私に知らせてうまくいくかもしれない:

まず
SELECT * FROM 
    (SELECT * FROM studio ORDER BY studioId DESC LIMIT 3) z 
ORDER BY z.studioId; 

サブクエリで最新の3つのデータを取得します。

テーブルとして扱うエイリアスを作成します。

レコードを昇順で並べ替えます。

関連する問題