簡體   English   中英

調用函數php joomla不起作用

[英]calling function php joomla doesn't work

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

如果函數中的代碼被寫為非函數(在代碼本身上),則它可以正常工作。 但! 當代碼起作用並從頁面調用時,整個屏幕變為白色。

代碼很簡單...第一個函數獲取用戶的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');
?>

我因這個問題呆了兩天。 我將不勝感激。 謝謝。

您正在經歷的是死亡白屏。

很可能您已關閉錯誤報告功能(建議在生產環境中使用)t出現錯誤,但未在屏幕上顯示。 您可以:

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

至於為什么發生這種情況,我想說您無法訪問函數內部的$ db變量(請參見此答案 )。

如果代碼在Jooomla MVC類模型中,則$db = $this->getDbo()會執行類似的操作。

我鼓勵您使用類而不是函數,您將獲得一些額外的東西,例如自動加載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM