dream04110 2018-07-17 06:19
浏览 86
已采纳

在php中获取多行

Actually I want a output of more than one row and its giving me only one. This is my code and it returns only one row. But when I run the same query SELECT DISTINCTROW metal, $fsym from metals ORDER BY id DESC LIMIT 4 in phpmyadmin it gives me my desired output of 4 rows.

function readAnother()
{
    $fsym =    $_GET['fsym'];
    echo $fsym . '<br>';
    $query = "SELECT DISTINCTROW metal, $fsym from metals ORDER BY id DESC LIMIT 4";
    $stmt = $this->conn->prepare($query);

    $stmt->bindParam(1,$this->fsym);
    $stmt->execute();

    $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $this->metal = $row['metal'];
    $this->price_eur = $row[$fsym];

}
  • 写回答

2条回答 默认 最新

  • dongtiannan0367 2018-07-17 06:46
    关注

    As per discussion on comment: Use fetchall

    You can try below code

    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($rows as $row) {
        $this->metal = $row['metal']; // by this it will add the last 4th record metal value in the variable 
        $this->price_eur = $row[$fsym];
    }
    

    I will recommend that if you want to use all rows 'metal' then use the proper array

    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $finalArray = [];
    foreach ($rows as $row) {
        $finalArray[] = ['metal' => $row['metal'], 'price_eur'=> $row[$fsym]]
    
    }
    print_r($finalArray);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥15 帮我写一个c++工程