2017-05-26 7 views
0

私はオープンソースプロジェクトを開発しようとしていますが、いくつか問題があります。 私のすべての機能が書かれているPHP関数ファイルを使用しています。 functions.php
FetchAllでPHP関数を作成

<?php include 'inc/db.php'; 
function getCategories(){ 
$sqlGetCategories = $conn->prepare("SELECT name FROM categories"); 
$sqlGetCategories->execute(); 
return $sqlGetCategories->fetchAll(); 
} 
?> 


そして、私は何も画面に現れないgetCategories関数を呼び出すと、これは私ののindex.php

<?php include 'inc/functions.php'; 
$listeCategories = getCategories(); 
foreach($listeCategories as $row) { 
    echo "<option>"; echo $row['name']; echo "</option>"; 
}?> 

である:それはこれが含まれています。

私はこのサイトで見つかった別の方法を試しましたが、何も正しく機能しませんでした。

もしあなたが私を助けることができたら、それはすばらしいでしょう。

おかげ

+0

'$ conn'は未定義です。 '$ conn'をグローバル変数として使うことも、関数のパラメータとして渡すこともできますし、それでもコンストラクタを持つクラスを使うこともできます。 – Akintunde007

+0

@Akintundeおそらくdb.phpの中にあります。 – CodeIt

+0

@CodeIt関数のスコープ –

答えて

1

何が起こるかは、あなたが今宣言された関数を持っているように、変数$connが存在しないということです。接続変数をパラメータとして渡すか、関数内のグローバル変数として渡す必要があります。

<?php 
include 'inc/db.php'; 
    function getCategories($conn){//pass connection as a parameter 
    $sqlGetCategories = $conn->prepare("SELECT name FROM categories"); 
    $sqlGetCategories->execute();//returns true/false 
    return $sqlGetCategories->fetchAll(); 
    } 
?> 

OR:あなただけの機能を使用せずにデータベースからカテゴリを取得するPHPファイルを持っていた場合は、変数のスコープ

OPTION1の問題に直面wouldnt't

OPTION2:変数にもっと読む

<?php 
include 'inc/db.php'; 
    function getCategories(){ 
    global $conn;//use as a global variable(Although i prefer option1) 
      $sqlGetCategories = $conn->prepare("SELECT name FROM categories"); 
      $sqlGetCategories->execute(); 
      return $sqlGetCategories->fetchAll(); 
      } 

      ?> 

スコープhere

+0

ありがとう、このソリューションはうまくいきました! – lezogeek

+0

@lezogeek – Akintunde007

+0

私は喜んで – Akintunde007

関連する問題