這樣建入口檔案哪裡錯了呢

來源:互聯網
上載者:User
我在discuz根目錄下建了一個名為test.php的檔案,主要是仿製forum.php這個檔案裡面的內容,有些刪了,代碼如下
fetch('catname');while($value=DB::fetch($siteuniqueid)){$data[]=$value;}print_r($data);echo $data[0];?>

建這個檔案的目錄是做測試用的,比如有一個表portal_category,裡面有一個欄位catname,我想用這個建立檔案做實驗,列印出catname字值下的所有的值,但是在地址欄中輸入http://localhost/test.php 後,結果是空白,但不報錯,不知為啥


回複討論(解決方案)

本人也是個菜鳥,最開始遇到過變白的原因變數沒加 $,後來是函式宣告的那個檔案沒有引進來。。

自己在認為可能有錯的地方 echo "" 一些東西,看看具體是哪錯了,慢慢試把。。

本人也是個菜鳥,最開始遇到過變白的原因變數沒加 $,後來是函式宣告的那個檔案沒有引進來。。

自己在認為可能有錯的地方 echo "" 一些東西,看看具體是哪錯了,慢慢試把。。


可是我都加了,這是其一,另外你說慢慢試試,用不著提醒吧,象這種沒啥意思的文章盡量別回.有意義嗎?

建discuz的入口檔案,只需要如下兩句

require_once './source/class/class_core.php';C::app()->init();

你沒有C::app()->init();


本人也是個菜鳥,最開始遇到過變白的原因變數沒加 $,後來是函式宣告的那個檔案沒有引進來。。

自己在認為可能有錯的地方 echo "" 一些東西,看看具體是哪錯了,慢慢試把。。


可是我都加了,這是其一,另外你說慢慢試試,用不著提醒吧,象這種沒啥意思的文章盡量別回.有意義嗎?




sorry

建discuz的入口檔案,只需要如下兩句

require_once './source/class/class_core.php';C::app()->init();

你沒有C::app()->init();


init();$siteuniqueid = C::t('portal_category')->fetch('catname');while($value=DB::fetch($siteuniqueid)){$data[]=$value;}print_r($data);?>

我這樣加上了,還是列印不出來,空白,沒有提示報錯

$siteuniqueid = C::t('portal_category')->fetch('catname');
fetch括弧裡面只能是主鍵id,也就說只能為數字(可以查看\source\class\discuz\discuz_table.php裡面的fetch)
用C類執行後不需要,返回的不是資源類型,你不需要用DB::fetch
實際上只有用DB::query查詢的語句,返回的才是資源類型
所以,你應該改為:
$data = C::t('portal_category')->fetch(1);
print_r($data);

$siteuniqueid = C::t('portal_category')->fetch('catname');
fetch括弧裡面只能是主鍵id,也就說只能為數字(可以查看\source\class\discuz\discuz_table.php裡面的fetch)
用C類執行後不需要,返回的不是資源類型,你不需要用DB::fetch
實際上只有用DB::query查詢的語句,返回的才是資源類型
所以,你應該改為:
$data = C::t('portal_category')->fetch(1);
print_r($data);


這回行了,下面是正確的代碼,還有一點有疑惑:你說 實際上只有用DB::query查詢的語句,返回的才是資源類型
但是My Code中沒有去掉DB::query為啥還能正確列印呢
init();$data = C::t('portal_category')->fetch(1);while($value=DB::fetch($siteuniqueid)){$data[]=$value;}print_r($data);?>

你在fetch(1)中放的是1,如果我想把這個表中所有的資料都列印出來怎麼辦呢
我試著寫fetch('catid'')
顯示的列印結果是Array呢


$siteuniqueid = C::t('portal_category')->fetch('catname');
fetch括弧裡面只能是主鍵id,也就說只能為數字(可以查看\source\class\discuz\discuz_table.php裡面的fetch)
用C類執行後不需要,返回的不是資源類型,你不需要用DB::fetch
實際上只有用DB::query查詢的語句,返回的才是資源類型
所以,你應該改為:
$data = C::t('portal_category')->fetch(1);
print_r($data);


這回行了,下面是正確的代碼,還有一點有疑惑:你說 實際上只有用DB::query查詢的語句,返回的才是資源類型
但是My Code中沒有去掉DB::query為啥還能正確列印呢
init();$data = C::t('portal_category')->fetch(1);while($value=DB::fetch($siteuniqueid)){$data[]=$value;}print_r($data);?>



$siteuniqueid此參數已經沒有了,而且你的C::t('portal_category')->fetch(1);返回的數組,就是用$data存放的,所以你的while是沒有用的

若想擷取表中全部資料,就用DB類操作吧,因為discuz封裝的表模型中(portal_category這個表)是沒有擷取全部資料的方法
DB::fetch_all('SELECT * FROM %t',array('portal_category'));

確實是這樣,真想再給你加分,下次吧,下次給的分更多

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.