2009-09-09 9 views
1

Je crée des fonctions depuis trop longtemps sans prendre mon code en 'classes'.comment faire de cette fonction une classe?

je bien apprendre par l'exemple et je voulais simplement convertir cette fonction simple en classe pour que je puisse comparer quelque chose que je sais quelque chose que je ne ...

Prenez la fonction suivante:

function affiliateName($affiliateID) { 

$sql = 'SELECT * FROM affiliates WHERE uID="' . $affiliateID . '" '; 

$res = mysql_query($sql); 

$row = mysql_fetch_array($res); 

$affiliateName = $row['firstName'] . ' ' . $row['lastName']; 

return $affiliateName; 

} 

Et comment pourrais-je en faire un cours?

+0

Êtes-vous supposer pour créer une définition de classe? n'est-ce pas? – adatapost

Répondre

4
<?php 
class AffiliateModel 
{ 
    public function first($id) 
    { 
     $sql = 'SELECT *, CONCAT(firstName, ' ', lastName) AS qualifiedName FROM affiliates WHERE uID="' . $id . '" LIMIT 1'; 
     $res = mysql_query($sql); 

     return mysql_fetch_object($res); 
    } 
} 

$model = new AffiliateModel(); 
$a = $model->first($id); 
echo $a->qualifiedName; 
?> 
2

Hope it helps

<?php 
class affiliate{ 

    // fields or properties 
    public $name = ''; 
    public $id = 0; 

    // constructor 
    public function affiliate($id = 0){ 
    $this->set_ID($id); 
    } 

    // methods 
    public function set_ID($id){ 
    return $this->id = $id; 
    } 

    public function get_Name(){ 

    if($this->name != ""){ 
     $sql = 'SELECT * FROM affiliates WHERE uID="' . $this->id . '" '; 
     $res = mysql_query($sql); 
     $row = mysql_fetch_array($res); 
     return $this->name = $row['firstName'] . ' ' . $row['lastName']; 
    }else{ 
     return $this->name; 
    } 
    } 
} 

// Example: 

    $currentAffiliate = new affiliate(153); 
    echo $currentAffiliate->name; 
?> 
+0

pas de problème! du tout! – mauris

1

Je préfère la conception suivante car il est le plus simple à utiliser:

class affiliates { 
    static function load($id) { 
     return new self(intval($id)); 
    } 
    private function __construct($id) { 
     $query = "SELECT * FROM affiliates WHERE id = " . intval($id); 
     $result = mysql_query($query); 
     // TODO: make sure query worked 
     foreach(mysql_fetch_assoc($result) as $field => $value) 
      $this->$field = $value; 
    } 
    // composite fields - made by combining and/or re-formatting other fields 
    function qualifiedName() { 
     return $this->firstName . ' ' . $this->lastName; 
    } 
    function properName() { 
     return $this->lastName . ', ' . $this->firstName; 
    } 
} 

$a = affiliates::load(22); 
// all db fields are available as properties: 
echo $a->id; // 22 
echo $a->firstName; // Fred 
echo $a->lastName; // Smith 
// composite fields are methods 
echo $a->qualifiedName(); // Fred Smith 
echo $a->properName(); // Smith, Fred 
// to get a single field from a particular person 
echo affiliates::load(72)->qualifiedName(); 
Questions connexes