2011-12-13 4 views
0

以下の関数を使用して、必要に応じてデータベースからデータを取得し、OOP PHPを使用してビューページに結果を表示しようとしています。この関数は、DBからデータを引き出し:OOPのプロパティ値の設定と取得PHP

function getdata() { 
    $con = mysql_connect("localhost","root","XXXX"); 
    if (!$con) 
     { 
    die('Could not connect: ' . mysql_error()); 
     } 
     mysql_select_db("user", $con); 
     $sql="SELECT major FROM Education WHERE id=1"; 
     $result=mysql_query($sql) or die(mysql_error()); 
     $row = mysql_fetch_row($result); 

    mysql_close($con); 

    } 

だから、前の関数は、データベースからアクティブなユーザーの大学の専攻を取得します。次のように

function recommender() { 
     if (isset($this->collegemajor)) { 
      echo "Your major is on Facebook. You're majoring in $this->collegemajor."; 
     } else { 
      $this->getdata(); 
      echo "Your major is in the DB. You're majoring in $this->collegemajor_db"; 
     } 
    } 

そしてcollegemajor_dbの値が設定されている:それは、その値が設定されている場合のみ、そのように、と呼ばれていますいくつかの理由

 $collegemajor = isset($user_profile['education'][0]['concentration'][0]['name']) ? $user_profile['education'][0]['concentration'][0]['name'] : null ; 
    $collegemajor_db = isset($row['major']) ? $row['major'] : null ; 

    $profile = new profile ($collegemajor, $collegemajor_db); 
    $profile->recommender(); 

、私はこのコードを実行すると、ます$ this-> collegemajor_dbが入力されていません。 DB接続が機能し、私はオブジェクトプロパティcollegemajor_dbの値を設定しているだけです(私は推測します)。

+1

'$ this-> collegemajor_db = isset($ row ['major'])の最初の部分はありませんか? $ row ['major']:null; 'それはちょうど転置エラーですか? – DaOgre

+0

'$ collegemajor_db'の値をどこで設定しますか? (あなたは文章を表示しますが、この文章の実行場所を尋ねます) – danihp

+0

コメント1では、それはオブジェクトの文脈ではありません。クラスの外にあり、上のコードを編集しました。 – buttonitup

答えて

0

Hmmmm ...私はちょっと新しいですから、私はここから完全に離れることができますが、関数が値を返すべきではありませんか?おそらくreturn $row;またはreturn $result;です。私が言ったように、私は間違っているかもしれないが、私はそれが問題であると思う。

+0

両方お試しください。サイコロはありません。 – buttonitup

+0

そのSQLクエリはどうですか? idが1の行がありますか?それはそこにハードコーディングされるのだろうか? – john

+0

1)はい。 2)恐らくそうではありませんが、私は最初に基礎を取りたいと思います。 – buttonitup

関連する問題