这是一个初学的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
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);
}
}
我究竟如何从每一行获取数据?我知道怎么做一行,但我不知道怎么做3行。
提前感谢任何建议。
答案 0 :(得分:1)
每行的数据都在$row
,因此请打印,而不是$rankerrows
。
while ($row = mysqli_fetch_assoc($rankerrows)) {
print_r($row);
}
并且您可以在查询末尾添加LIMIT 3
子句,以便它只返回前3行。
答案 1 :(得分:0)
另一个答案没有用,但确实如此:
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
而不是stmt
上调用。由于我没有get_result()
的驱动程序和所有好东西,这是有效的解决方案