所以我正在学习编写函数。现在我知道如何回复东西到foreach但我不知道如何在foreach外面打印一行(就像我在我的表中只有一行并且想要打印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())
这样的东西和一个回声,但我似乎无法让它发挥作用。那我该怎么做呢?
答案 0 :(得分:0)
因为您使用的是->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'];
}
}
答案 1 :(得分:-1)
“我已经尝试过像
print_r($overig->gevens())
这样的东西和一个回声,但我似乎无法使其发挥作用。那么我该怎么做呢?”
您调用的方法的名称与类中方法的名称不匹配。在您的班级中,您有:gegevens()
,但在您的通话中:您指定了:gevens()
。除非这只是一个正常的错字;你应该从那里开始你的调试。
换句话说;您的来电应该是:print_r($overig->gegevens())
。
THE CLASS:
<?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;
}
}
}