2

私はmysqliでクエリを持っています:

function getPicByAlbumt($query)
{
    $sqlStr = "SELECT TOP 10 * FROM tbl_albumpictures WHERE album_Id = ? ".$query;
    return $sqlStr;
}

これは、このクエリのプロセスです。

<?php
        $sqlu = getPicByAlbumt("order by rating");
    if ($result2u = $mysqli->prepare($sqlu)) 
    {
        $rekzak = 76;
        $result2u->bind_param("i",$rekzak);
        $result2u->execute();   
        $result2u->store_result();
        $rows2u = $result2u->num_rows;      
    }
    if($rows2u>0)
    {
    $rowu = fetch($result2u);
    for($g=0; $g<$rows2u; $g++)
    {
    $picname = $rowu[$g]["pic_name"];
    ?>
            <div style="float:right; width:115px; height:96px; background:url(<?=$site_url?>/images/t/girlpicbg.png); margin-right:1px; margin-top:2px;">
            <img src="<?=$site_url?>/uploads/albums/<?=$picname?>" style="width:106px; height:88px; margin-top:3px; margin-right:6px;" />
            </div>
    <?php
    }
    }
    ?>

、、、私の問題は、TOP 10 * が mysqli で機能しないことです:S .. 提案や助けをお願いします:S ?.. 別の言葉: もし私が 20 枚の写真を持っている場合...評価順に並べ替えます....つまり彼の注文が1の場合、最後の写真が最初になる可能性があります...そして、彼の注文が20の場合、最初の写真が最後になる可能性があります.つまり、最初の 10 個の ID (写真) を選択し、最初の写真の評価が 20 である場合、このグループ (ID による最初の 10 枚の写真) で、最初の写真を最後に並べたい..彼の ID は 20 で、最大の評価値であるため

4

2 に答える 2

3

SELECT TOPMySQL ではなく、SQL-Server に使用されます。あなたが探しているのはLIMIT

SELECT * FROM tbl_albumpictures WHERE album_Id = ? LIMIT 10
于 2012-09-27T14:16:23.823 に答える
1

使ってMySQLますよね?( MSSQLLIMIT 10の場合)の代わりに使用します。TOP 10

SELECT...
FROM...
WHERE...
ORDER BY...
LIMIT 10
于 2012-09-27T14:16:17.177 に答える