[ feroc1ty @ 22.12.2007. 16:30 ] @
Pravim class-u da mi izbaci podatke od nekog korisnika ali ne znam kako da izbacim array iz funkcije.


Moj primer bez klase

Code:
    
$id = 1;
$sql = "SELECT * FROM `users` WHERE id = '$id'";
$query = mysql_query($sql);
$userinfo = mysql_fetch_assoc($query);
echo 'Username : '.$userinfo['username'].'<br /> Email : '.$userinfo['email'];


A sa classom

Code:
    


class getInfo {

  function UserInfo($id) {
  $sql = "SELECT * FROM `users-ttt` WHERE id = '$id' ";
  $query = mysql_query($sql);
  $userinfo= mysql_fetch_assoc($query);
  }
}
$info = new getInfo() ;
$info->UserInfo(1);
echo 'Username : '.$userinfo['username'].'<br /> Email : '.$userinfo['email'];


Sta trebam da dodam ili da izmenim da bi mi classa radila

[Ovu poruku je menjao feroc1ty dana 22.12.2007. u 21:03 GMT+1]
[ feroc1ty @ 24.12.2007. 01:29 ] @
Code:

class getInfo {
    public $userinfo;
  function UserInfo($id) {
  $sql = "SELECT * FROM `users-ttt` WHERE id = '$id' ";
  $query = mysql_query($sql);
  $this->userinfo= mysql_fetch_assoc($query);
  }
}
$info = new getInfo() ;
$info->UserInfo(1);
echo 'Username : '.$info->userinfo['username'].'<br /> Email : '.$info->userinfo['email'];


Moje resenje je ovako ali ako zna drugacije (elegantije) da nemoramda kucam $info->userinfo['username'] nego samo $userinfo['username'] Neka slobodno postuje!!!

[Ovu poruku je menjao feroc1ty dana 24.12.2007. u 02:56 GMT+1]
[ dakipro @ 24.12.2007. 08:41 ] @
Ako vec zelis tako, moj predlog sa malim izmenama je
Code:

class getInfo {
    public $userinfo;

  function setUserInfo($id) {
       $sql = "SELECT * FROM `users-ttt` WHERE id = '$id' ";
       $query = mysql_query($sql);
       $this->userinfo= mysql_fetch_assoc($query);
  }

  function getUserInfo(){
      return $this->userinfo;
  }
}
$info = new getInfo() ;
$info->setUserInfo(1);
$userinfo = $info->getUserInfo;

echo 'Username : '.$userinfo['username'].'<br /> Email : '.$userinfo['email'];


Ali naravno, sve su ovo finese i mozda vise stvar navike rada sa oop nego sto mozda tako treba.
Razlog dodavanaj jos jedne metode je taj sto ces nekada mozda zeleti da nekako obradis podatke koje citas iz klase (npr: odraditi neku proveru dal user postoji ili nesto drugo...), i to onda mozes odraditi na jednom mestu, u samoj klasi a ne svuda kroz ceo kod. (sto i jeste poenta) Bar su mene ucili da objekat treba da ima svoje metode kojima vraca vrednosti, kao i svoje metode za setovanje istih, kako bi se objekat brinuo o tome da li je potrebna neka obrada ili ne, a ne ti kroz ostatak koda.

btw, inace radim sa smartyjem, pa prosledim ceo objekat, i koristim nesto nalik ovome sto si prvi put postovao, samo postoji jos koja metoda za izvlacenje tacno odredjenog clana niza.

[ rajkoBekrija @ 18.04.2008. 03:00 ] @
Znam da je tema stara, ali reko da je malo osvjezimo, recimo ovakvo rjesenje

Code:
<?php

   class getInfo {
      
      function __construct($id) {
         $this -> Data = mysql_fetch_assoc( mysql_query( "SELECT * FROM `users-ttt` WHERE id = '{$id}' LIMIT 1") );
      }
      
      function __get( $Key ){
         return $this -> Data[ $Key ];
      }
      
   }

   
   $Info = new getInfo( 1 );
   print "Username : {$Info->username}<br />Email : {$Info->email}";

?>