ホームページ >バックエンド開発 >PHPチュートリアル >discuz で ct コールを記述する方法
以下のコードをDBからCtに変更しましたが、結果が間違っており、どこの書き方が間違っているのかわかりません
<?php/** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * * $Id: forum.php 33828 2013-08-20 02:29:32Z nemohou $ */define('APPTYPEID', 88);define('CURSCRIPT', 'test');require './source/class/class_core.php';require './source/function/function_forum.php';C::app()->init();$data = $query = C::t('#portal_category')->fetch_all($catid);while($value=$this->fetch_array($data)){ $data[]=$value; }print_r($data);?>
C: :t('#portal_category')、# 記号を追加しないでください。プラグイン ディレクトリ内のテーブル モデルであると見なされ、そのテーブルがないことを示すエラーが報告されます。 model
例: C::t('#qqconnect#common_member_qqconnect') ->insert($insert_arr);
discuz は自動的にディレクトリ sourcepluginqqconnecttable に移動して、テーブル モデル ファイル table_common_member_qqconnect.php
fetch_all($catid) )、$catid は配列ですが、数値にすることもできます
while も必要ありません。はい、次のように変更してみてください:
//$catid=1;//$catid=array(1,2,3);$res = C::t('portal_category')->fetch_all($catid);echo "<pre class="brush:php;toolbar:false">";print_r($res);echo "";
C::t('#portal_category'), # 記号を追加しないでください。プラグイン ディレクトリ内のテーブル モデルであると認識され、エラーが報告され、そのテーブル モデルがありません
例: C::t('# qqconnect#common_member_qqconnect')->insert($insert_arr);
discuz は自動的にディレクトリ sourcepluginqqconnecttable に移動してテーブル モデル ファイル table_common_member_qqconnect.php を見つけます
fetch_all($ catid)、$catid は配列であり、数値
while は必要ないので、次のように変更してみてください:
//$catid=1;//$catid=array(1,2,3);$res = C::t('portal_category')->fetch_all($catid);echo "<pre class="brush:php;toolbar:false">";print_r($res);echo "";
<?php/** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * * $Id: forum.php 33828 2013-08-20 02:29:32Z nemohou $ */define('APPTYPEID', 88);define('CURSCRIPT', 'test');require './source/class/class_core.php';require './source/function/function_forum.php';C::app()->init();$data = C::t('portal_category')->fetch_all($catid);print_r($data);?>
ええと...このテーブル モデルにはすべてのデータをクエリするメソッドはないと言いましたが、fetch と fetch_all の両方に条件が必要であり、その条件は主キーの catid であるため、すべてのデータをクエリするには DB Of を使用します。もちろん、このテーブル内のすべてのデータをクエリすることもできます。モデル内のすべてのメソッドをクエリするメソッドを作成します
例:sourceclasstabletable_portal_category.php を開き、クラス (table_portal_category) に次のメソッドを追加します
public function my_fetch_all(){ return DB::fetch_all("SELECT * FROM %t",array($this->_table)); }
えー... 言いましたねその前に、このテーブル モデル内のすべてのデータをクエリするメソッドはありません。 fetch と fetch_all の両方に条件が必要です。条件は主キーの catid であるため、DB を使用してすべてのデータをクエリするメソッドを記述することもできます。テーブル モデル内のすべてのデータをクエリします
例: sourceclasstabletable_portal_category.php を開き、クラス (table_portal_category) に次のメソッドを追加します
public function my_fetch_all(){ return DB::fetch_all("SELECT * FROM %t",array($this->_table)); }