1

OOP PHP の MYSQL 選択に問題があります。正しい書き方がわかりません。私のコードは次のとおりです。

$sql = "SELECT name_mcategory 
            FROM web_main_category WHERE userid=('".$userid."')";
    $result = mysql_query($sql);
    $e=0;
    $maincat=array ();
    while($data=mysql_fetch_array($result))
    { 
        $maincat[$e]=$data['name_mcategory'];
        $e++;

    } 

OOPでそれを書く方法は?私はこれを試しましたが、うまくいきませんでした。

class nweb {
var $userid;
var $mcategory;


function Getmain_category () {

$rs = mysql_query("SELECT name_mcategory 
            FROM web_main_category WHERE userid=$this->userid");
  }
$this->tab=mysql_fetch_object($rs);
}
   }

印刷ページで

$mcat = new nweb();
$mcat->getmain_category ();
$mcat->mcategory=$this->name_mcategory;

$maincat[$e]=$data['name_mcategory']; のようなデータを取得する方法

4

3 に答える 3

1

OOPを使用する場合は、次のようなOOPDBレイヤーを使用しますPDO

class nweb extends PDO {

  public $userid, $mcategory;

  public function __construct($hostname, $dbname, $username, $password) {
    parent::__construct($hostname,$dbname,$username,$password);
  }

  public function getmain_category() {
     return $this->query("SELECT name_mcategory FROM web_main_category WHERE userid = {$this->userid}")->fetch();
  }
}

$mcat = new nweb('hostname', 'dbname', 'username', 'password');
var_dump($mcat->getmain_category());

注:エラー処理を追加します。を参照してくださいpdo::query

于 2013-01-16T05:21:34.817 に答える
0

このようにチェック

 class nweb {
   var $userid;
   var $mcategory;


  function getmain_category () {

             $rs = mysql_query("SELECT name_mcategory 
                    FROM web_main_category WHERE userid = {$this->userid}");

             return mysql_fetch_object($rs);
  }

}



//print page


   $mcat = new nweb();
   $data = $mcat->getmain_category ();

   $e=0;
   $maincat=array ();
   while($data=mysql_fetch_array($result))
   { 
        $maincat[$e]=$data['name_mcategory'];
        $e++;
   } 
于 2013-01-16T05:12:07.513 に答える
0

OOP では通常、データベース操作を処理する別のクラスを作成します。たとえば、Database.php でクエリを実行して結果を Category.php に返すか、Category に Database.php を継承させます。より良い方法が必要な場合は、PHP Activerecord を使用してください。

于 2013-01-16T05:11:18.907 に答える