【问题标题】:echo result from function from table in database从数据库中的表中回显函数的结果
【发布时间】:2016-09-18 17:28:27
【问题描述】:

所以我正在学习编写函数。现在我知道如何将内容回显到 foreach 中,但我不知道如何在 foreach 之外打印单行(就像我的表中只有 1 行并且想从中打印 id 和用户名)我该怎么做这个? 我的功能:

public function gegevens(){
    $stmt = $this->conn->prepare("SELECT * FROM gegevens_locatie");
    $stmt->execute();

    $result = $stmt->fetchAll();

    //Return result
    return $result;
}

当我在我的其他页面上调用该函数时,我调用它:

require_once 'class/class.overig.php';
$overig = new OVERIG();

我已经尝试过 print_r($overig->gevens()) 之类的东西并带有回声,但我似乎无法让它工作。那么我该怎么做呢?

【问题讨论】:

  • “我似乎无法正常工作”是什么意思?你得到什么输出?

标签: php mysql pdo


【解决方案1】:

因为您使用的是->fetchAll(),所以即使只返回一行,您也将始终获得一组行。您还需要在调用中使用正确的方法名称。

所以你需要做的就是

$arr = $overig->gegevens();

if ( count($arr) == 1 ) {
    echo $arr[0]['id'];
    echo $arr[0]['username'];
}

if ( count($arr) > 1 ) {
    foreach ( $arr as $row) {
        echo $row['id'];
        echo $row['username'];
    }
}

【讨论】:

    【解决方案2】:

    “我已经尝试过 print_r($overig->gevens()) 之类的东西并带有回声,但我似乎无法让它工作。那我该怎么做呢?”

    您调用的方法名称与您的类中的方法名称不匹配。在您的班级中,您有:gegevens(),但在您的通话中:您指定:gevens()。除非这只是一个普通的错字;你应该从那里开始你的调试。

    换句话说;你的电话应该是:print_r($overig->gegevens())

    班级:

        <?php
    
            class OVERIG{
                public function gegevens(){
                    $stmt = $this->conn->prepare("SELECT * FROM gegevens_locatie");
                    $stmt->execute();
    
                    $result = $stmt->fetchAll();
    
                    //Return result
                    return $result;
                }
            }
    

    使用课程:

        <?php
    
            require_once 'class/class.overig.php';
            $overig = new OVERIG();
            $result = $overig->gegevens();
    
            // TRY DUMPING THE VARIABLE: $result:
            var_dump($result);
    
    
            // TO ECHO OUT SOME VALUES:
            if($result){
                foreach($result as $key=>$item){
                    if(is_string($item)){
                        echo $item;
                    }
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多