gpt4 book ai didi

php - mysqli_fetch_array 只显示第一个结果

转载 作者:行者123 更新时间:2023-11-29 06:00:56 24 4
gpt4 key购买 nike

我整天都在努力使用 PHP 显示 SQL 查询的结果。我在数据库中有一个名为 coins 的表,其中包含以下列:- nr_unic(即索引);
- 排名;
- 姓名;
- 符号;
- price_usd;
- price_btc;
我需要做的是获取每个硬币的值(从 name 字段)并显示 symbolprice_usd price_btcrank。包含我正在运行并试图显示值的查询的代码是:

    // 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 的指示,我设法更新了代码并显示了结果。现在的问题是它们被复制了:我得到了第一枚硬币,然后是第一枚和第二枚,然后是第一枚、第二枚和第三枚……等等。我使用的代码已更新

最佳答案

return while 循环中的语句会导致函数立即终止,仅返回第一行。相反,您应该将结果收集到一个数组中并在末尾返回该数组:

$rows = array();

while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$rows[] = $row['name'] . " " . // ...
}

mysqli_free_result($result);
return $rows;

关于php - mysqli_fetch_array 只显示第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44988789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com