我整天都在努力使用PHP显示SQL查询的结果。
我在数据库中有一个名为coins的表,其中包含以下列:
- nr_unic
(这是索引);
- rank
;
- name
;
- symbol
;
- price_usd
;
- price_btc
;
我需要做的是获取每个硬币的值(来自name
字段)并显示symbol
,price_usd
,price_btc
和rank
。包含我正在运行的查询并尝试显示值的代码段是:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// SQL QUERY
$sql= "SELECT rank, name, symbol, price_usd, price_btc, 24h_volume_usd FROM coins WHERE rank BETWEEN 1 AND 10 ORDER BY nr_unic DESC LIMIT 10";
$result = $conn->query($sql);
$rows = array();
if ($result) {
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$rows[] = $row['name'] . " " . $row['price_usd'] . " " . $row['symbol'] . " " . $row['rank'];
foreach ($rows as $key => $value) {
echo $value;
}
}
mysqli_free_result ($result);
}
谢谢!
稍后编辑 按照@MátéSolymosi的指示,我管理了更新代码并显示结果。现在的问题是它们正在重复:我得到第一枚硬币,然后是第一枚和第二枚硬币,然后是第一枚,第二枚和第三枚......依此类推。 我使用的代码已更新
答案 0 :(得分:2)
while
循环中的return
语句会导致函数立即终止,只返回第一行。相反,您应该在数组中收集结果并在结尾返回数组:
$rows = array();
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$rows[] = $row['name'] . " " . // ...
}
mysqli_free_result($result);
return $rows;