簡體   English   中英

MySQL SQL從多行打印結果

[英]mySQL PHP print results from multiple rows

這是一個初學者的PHP / SQL問題。

基本上,我有一個像這樣的數據庫

  Poem_id   |   Poem_content  |  Poem_by  |   Poem_hotscore
------------ ----------------- ----------- -----------------
     1      |  Blah Bleh<br>B.|     4     |  5342.3920349
------------ ----------------- ----------- -----------------
     7      |  Blah Bluu<br>F.|     4     |  5003.3920382
------------ ----------------- ----------- -----------------
     9      |  Blerp Bloop Foo|    34     |  4300.7281209

每首詩

  • 具有唯一的id
  • 有內容
  • 由具有唯一member_id的成員編寫
  • 有一個由Cron Job使用Reddit的分數排名算法計算的唯一hotscore

我的問題是:如何獲得前三名的分數並顯示這些詩歌的所有數據?

到目前為止,我擁有的PHP代碼是:

if ($rankerrows = $mysqli->prepare("SELECT * FROM poems ORDER BY poem_hotscore DESC")) {

    $rankerrows->execute();
    $rankerrows->store_result();


    while ($row = mysqli_fetch_assoc($rankerrows)) {
        print_r($rankerrows);
    }

}

我如何從每一行中獲取數據? 我知道如何做一排,但是我不確定如何做三排。

在此先感謝您的任何建議。

每行中的數據都在$row ,所以打印出來,而不是$rankerrows

while ($row = mysqli_fetch_assoc($rankerrows)) {
    print_r($row);
}

您可以在查詢末尾添加一個LIMIT 3子句,這樣它只會返回前3行。

另一個答案不起作用,但是可以:

if ($rankerrows = $mysqli->prepare("SELECT * FROM poems ORDER BY poem_hotscore DESC LIMIT 3")) {

    $rankerrows->execute();

    $row = array();
    stmt_bind_assoc($rankerrows, $row);

    /* Store data from poems */
    $poem_id=array();
    $poem_title=array();

    $i=0;


    while ($rankerrows->fetch()) {
        $poem_id[$i]=$row['poem_id'];
        $poem_title[$i]=$row['poem_title'];
        $i++;
    }

在另一個答案中使用mysqli_fetch_assoc()給我一個錯誤,它只能在mysqli_result而不是stmtmysqli_result 由於我沒有get_result()的驅動程序以及所有的好東西,因此這是有效的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM