Joomla sorgu görünüşe göre birden fazla çalışan

0 Cevap php

Ben bir Joomla sitenin yönetici bir raporlama bileşeni var. Kullanıcı daha sonra sorgu ve çıktısını bir CSV dosyası çalıştırmak için bir işlevi çağıran kullanılabilir rapor türlerinden bir açılır listeden seçebilirsiniz. Çoğunlukla bu işleri. Ancak, bir rapor için, ben mySQL doğrudan sorguyu çalıştırırsanız benden Joomla fonksiyonu sayesinde sonuç farklı sayıda alıyorum. Ben neler olduğunu görmek için bir hatalar.log eklenir ve sorgu kez çalışıyorsa gibi görünür. (Maybe.)

İşte işlevi çağıran kod:

function getFullRedeemActivity($start, $end){

    return getReportFullRedeemActivityByDate("v.UpdateDT", strtotime($start),strtotime($end));

}

$ Başlangıç ​​ve bitiş $ geçirilen; Orada sorun yok. Sorun getReportFullRedeemActivityByDate işlevi bulunmaktadır. İşte bunun için kod:

function getReportFullRedeemActivityByDate($start, $end, $limitStart=null, $limitRows=null){
    //open db
    $db =& JFactory::getDBO();
    $where = ($low && $high) ? " and v.UpdateDT between ".$db->quote($low)." and ".$db->quote($high) : "";
     $sort = "v.UpdateDT";
     $limit = (is_int($limitStart) && is_int($limitRows)) ? " limit ".$db->quote($limitstart).", ".$db->quote($limitRows) : "";

    //set query
    $query = "select    r.RedeemAmt,
            v.VoucherNbr, v.BalanceInit, v.UpdateDT, v.BalanceCurrent, 
    m.SkuAbbr, m.MerchantNm,
    a.name,  a.email, a.company, a.address1, a.address2, a.city, a.state, a.zip, a.phone

            from arrc_RedeemActivity r
            left outer join arrc_Voucher v on v.VoucherID = r.VoucherID
            left outer join arrc_Merchant m on m.MerchantID = r.MerchantID
            left outer join jos_customers_addresses a on a.id = r.AcctID
           {$where} 
            order by {$sort} {$limit}";

    $db->setQuery($query);
    if (!$db->query()) error_log($db->stderr());

    if (!$db->getNumRows()){
        JError::raiseWarning( 100, 'No records returned' );
        return false;
    }
    else{
        error_log("there are ". $db->getNumRows()." rows");
    }

    //loop out records into array
    foreach ($db->loadAssocList() as $row){
        $data[$row['BalanceCurrent']] = $row;
        return $data;
    }
}

Benim error_log baktığımda, ne görürsünüz:

[Tue Oct 19 09:37:30 2010] [error] [client xxx.xx.xx.xxx] there are 5 rows, referer: http://mysite.com/administrator/index.php?option=com_arrcard&section=reports
[Tue Oct 19 09:37:30 2010] [error] [client xxx.xx.xx.xxx] there are 2 rows, referer: http://mysite.com/administrator/index.php?option=com_arrcard&section=reports

Tıpkı bunun gibi; birbiri ardına. Görünüşe göre iki katı bölüm ile çalışıyor bu yüzden yazdırır hat bir döngü içinde olmadığı göz önüne alındığında, ben çözemiyorum.

Herhangi bir fikir?

0 Cevap