2016-09-18 6 views
-3

私は関数を書くことを学んでいます。今私はforeachに物事をエコーする方法を知っていますが、私はforeachの外で単一の行を印刷する方法がわかりません(私は私のテーブルに1行しかなく、それからIDとユーザー名を印刷したいのですが)この? 私の機能:私はprint_r($overig->gevens())のように、エコーでものを試してみましたが、私はそれを動作させるように見えるカントデータベース内のテーブルからの関数のエコー結果

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

:私は私の他のページに、その関数を呼び出すとき

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

    $result = $stmt->fetchAll(); 

    //Return result 
    return $result; 
} 

は私がそれを呼び出します。だから私はこれをどのようにすることができますか?

+0

である、それは何を意味し、「私はそれを動作させるように見えるカント」?あなたは何を得ますか? –

答えて

0

をあなたは常に意志->fetchAll()を使用しているため行が1つしか返されない場合でも、行の配列を取得します。また、呼び出し時に正しいメソッド名を使用する必要があります。

だから、すべてを行う必要がある

$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']; 
    } 
} 
+0

誰かがdownvoteを説明することはできますか – RiggsFolly

-1

は、「私はprint_r($overig->gevens())のように、エコーでものを試してみましたが、私はそれを動作させるように見える傾ける。だから私は、これをどのように行うことができますか?」

あなたが呼び出したメソッド名は、クラス内のメソッド名と一致しません。あなたのクラスでは、あなたはgegevens()を持っていますが、あなたの電話には:gevens()が指定されています。これが単なる普通のTypoでない限り。そこからデバッグを開始する必要があります。

つまり、あなたの電話は:print_r($overig->gegevens())だったはずです。

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; 
       } 
      } 
     } 
関連する問題