2013-04-23 65 views
0

我寫了一個與joomla數據庫集成的簡單php頁面。 我寫了兩個函數並調用它們。調用函數php joomla不工作

如果函數中的代碼被寫爲非函數(在代碼本身上),它可以很好地工作。但!當代碼處於工作狀態並從頁面調用時,整個屏幕將變爲白色。

該代碼很簡單... 第一個函數獲取用戶的ID並返回表中的數字總和。 第二個函數獲取用戶的用戶名並返回它的id號。 爲了確保這些功能正常工作,我向他們發送了特定的值(第一個函數爲24,第二個爲'admin')。

代碼:

<?php 
    defined('_JEXEC') or die('Restricted access'); 
    $items = $params->get('items', 10); 
    $db =& JFactory::getDBO(); 

    function get_sum($uid) 
    { 
     $sum = 0; 
     $query = "SELECT orderpayment_amount 
      FROM #__j2store_orders 
      WHERE user_id = '$uid' 
      ORDER BY id DESC"; 
     $db->setQuery($query, 0 , $items); 
     $rows = $db->loadObjectList(); 
     foreach($rows as $row) 
     { 
      $sum = $sum + $row->orderpayment_amount; 
     } 
     return "$sum"; 
    } 

    function getTalId($u) 
    { 
     $query = "SELECT id 
        FROM #__users 
        WHERE username = '$u' 
        ORDER BY id DESC"; 
     $db->setQuery($query, 0 , $items); 
     $rows = $db->loadObjectList(); 
     foreach($rows as $row) 
     { 
      return $row->id; 
     } 
    } 

    echo get_sum(42); 
    echo getTalId('admin'); 
?> 

我被困了兩天這個問題。 我會很感激任何幫助。 謝謝你。

回答

1

你正在經歷的是死亡的白色屏幕。

很可能您已將錯誤報告關閉(建議用於生產)t 存在錯誤,但不會顯示在屏幕上。您可以:

  • 更改錯誤報告(系統>全局配置>服務器>錯誤報告:發展)
  • 檢查您的服務器錯誤日誌。

至於爲什麼會發生這種情況,我想說你不能訪問函數中的$ db變量(參見this answer)。

如果代碼將在Jooomla MVC類模型中,$db = $this->getDbo()會做類似的事情。

我鼓勵你使用類而不是函數,你會得到一些額外的東西,如自動加載