簡體   English   中英

如何在Joomla中迭代LEFT JOIN數組數據?

[英]How to iterate LEFT JOIN array data in Joomla?

我正在嘗試在PHP中顯示數組值的迭代。 我能夠使它與使用一個表的foreach循環一起使用,但是在加入另一個表后將無法正確輸出並且迷路了。 該查詢返回正確的結果,但是我不確定如何使用foreach循環或其他方式將其正確放置到PHP中。 (在MySQLi中)

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
 ->select(array('t.id','t.name','t.abbr','g.date'))
 ->from('#__teams AS t')
 ->join('LEFT', '#__games AS g ON (t.id = g.team2)')
 ->where('t.div LIKE "fbs"')
 ->order('t.id ASC');
$db->setQuery($query);
$teams_class = $db->loadAssocList();

在一張桌子上,我使用了以下內容以獲得所需的結果。

$teams = array();
foreach($teams_class as $tc){
    $teams[] = $team = new team();
    $team->id = $tc['id'];
    $team->name = $tc['name'];
    $team->team = $tc['abbr'];
    $teams[$team->team] = $team;
}

現在,當嘗試聯接表並將第二個表(#__games)中的字段日期添加到$ teams數組中時,我不確定該怎么做。 除了另一個變量$ team-> date設置為相等的日期外,我需要它像上述那樣輸出。 查詢正確打印。

var_dump($teams_class)顯示:

array(125) { 
    [0]=> array(4) { ["id"]=> string(1) "1" ["name"]=> string(14) "Boston     College" ["abbr"]=> string(2) "BC" ["date"]=> NULL } 
    [1]=> array(4) { ["id"]=> string(1) "2" ["name"]=> string(7) "Clemson" ["abbr"]=> string(4) "CLEM" ["date"]=> string(19) "2013-08-31 19:00:00" } 
    [2]=> array(4) { ["id"]=> string(1) "3" ["name"]=> string(13) "Florida State" ["abbr"]=> string(3) "FSU" ["date"]=> NULL } 
    [3]=> array(4) { ["id"]=> string(1) "4" ["name"]=> string(8) "Maryland" ["abbr"]=> string(2) "MD" ["date"]=> NULL } 
    [4]=> array(4) { ["id"]=> string(1) "5" ["name"]=> string(20) "North Carolina State" ["abbr"]=> string(4) "NCST" ["date"]=> NULL } 
    [5]=> array(4) { ["id"]=> string(1) "6" ["name"]=> string(8) "Syracuse" ["abbr"]=> string(3) "SYR" ["date"]=> string(19) "2013-08-31 14:30:00" } 
    [6]=> array(4) { ["id"]=> string(1) "7" ["name"]=> string(11) "Wake Forest" ["abbr"]=> string(2) "WF" ["date"]=> NULL } 
    [7]=> array(4) { ["id"]=> string(1) "8" ["name"]=> string(4) "Duke" ["abbr"]=> string(4) "DUKE" ["date"]=> NULL } 
    [8]=> array(4) { ["id"]=> string(1) "9" ["name"]=> string(12) "Georgia Tech" ["abbr"]=> string(2) "GT" ["date"]=> NULL } 
    [9]=> array(4) { ["id"]=> string(2) "10" ["name"]=> string(8) "Miami-FL" ["abbr"]=> string(3) "MIA" ["date"]=> NULL } 
    [10]=> array(4) { ["id"]=> string(2) "11" ["name"]=> string(14) "North Carolina" ["abbr"]=> string(3) "UNC" ["date"]=> NULL } 
    [11]=> array(4) { ["id"]=> string(2) "12" ["name"]=> string(10) "Pittsburgh" ["abbr"]=> string(4) "PITT" ["date"]=> string(19) "2013-09-02 19:00:00" } 
    [12]=> array(4) { ["id"]=> string(2) "13" ["name"]=> string(8) "Virginia" ["abbr"]=> string(3) "UVA" ["date"]=> NULL } 
    [13]=> array(4) { ["id"]=> string(2) "14" ["name"]=> string(13) "Virginia Tech" ["abbr"]=> string(2) "VT" ["date"]=> string(19) "2013-08-31 16:30:00" } 
    [14]=> array(4) { ["id"]=> string(2) "15" ["name"]=> string(6) "Baylor" ["abbr"]=> string(3) "BAY" ["date"]=> NULL } 
    [15]=> array(4) { ["id"]=> string(2) "16" ["name"]=> string(10) "Iowa State" ["abbr"]=> string(3) "ISU" ["date"]=> NULL } 
    [16]=> array(4) { ["id"]=> string(2) "17" ["name"]=> string(6) "Kansas" ["abbr"]=> string(3) "KAN" ["date"]=> NULL } 
    [17]=> array(4) { ["id"]=> string(2) "18" ["name"]=> string(12) "Kansas State" ["abbr"]=> string(3) "KSU" ["date"]=> NULL } 
    [18]=> array(4) { ["id"]=> string(2) "19" ["name"]=> string(8) "Oklahoma" ["abbr"]=> string(4) "OKLA" ["date"]=> NULL } 
    [19]=> array(4) { ["id"]=> string(2) "20" ["name"]=> string(14) "Oklahoma State" ["abbr"]=> string(4) "OKST" ["date"]=> string(19) "2013-08-31 14:30:00" } 
    [20]=> array(4) { ["id"]=> string(2) "21" ["name"]=> string(3) "TCU" ["abbr"]=> string(3) "TCU" ["date"]=> string(19) "2013-08-31 20:00:00" } 
    [21]=> array(4) { ["id"]=> string(2) "22" ["name"]=> string(5) "Texas" ["abbr"]=> string(3) "TEX" ["date"]=> NULL } 
    [22]=> array(4) { ["id"]=> string(2) "23" ["name"]=> string(10) "Texas Tech" ["abbr"]=> string(3) "TTU" ["date"]=> NULL } 
    [23]=> array(4) { ["id"]=> string(2) "24" ["name"]=> string(13) "West Virginia" ["abbr"]=> string(3) "WVU" ["date"]=> NULL } 
    [24]=> array(4) { ["id"]=> string(2) "25" ["name"]=> string(10) "Cincinnati" ["abbr"]=> string(3) "CIN" ["date"]=> string(19) "2013-08-31 11:00:00" } 
    [25]=> array(4) { ["id"]=> string(2) "26" ["name"]=> string(11) "Connecticut" ["abbr"]=> string(4) "CONN" ["date"]=> NULL } 
    [26]=> array(4) { ["id"]=> string(2) "27" ["name"]=> string(7) "Houston" ["abbr"]=> string(3) "HOU" ["date"]=> NULL } 
    [27]=> array(4) { ["id"]=> string(2) "28" ["name"]=> string(10) "Louisville" ["abbr"]=> string(3) "LOU" ["date"]=> string(19) "2013-09-01 14:30:00" } 
    [28]=> array(4) { ["id"]=> string(2) "29" ["name"]=> string(7) "Memphis" ["abbr"]=> string(3) "MEM" ["date"]=> NULL } 
    [29]=> array(4) { ["id"]=> string(2) "30" ["name"]=> string(7) "Rutgers" ["abbr"]=> string(3) "RUT" ["date"]=> NULL } 
    [30]=> array(4) { ["id"]=> string(2) "31" ["name"]=> string(13) "South Florida" ["abbr"]=> string(3) "USF" ["date"]=> NULL } 
    [31]=> array(4) { ["id"]=> string(2) "32" ["name"]=> string(18) "Southern Methodist" ["abbr"]=> string(3) "SMU" ["date"]=> NULL } 
    [32]=> array(4) { ["id"]=> string(2) "33" ["name"]=> string(6) "Temple" ["abbr"]=> string(4) "TEMP" ["date"]=> NULL } 
    [33]=> array(4) { ["id"]=> string(2) "34" ["name"]=> string(3) "UCF" ["abbr"]=> string(3) "UCF" ["date"]=> NULL } 
    [34]=> array(4) { ["id"]=> string(2) "35" ["name"]=> string(4) "Iowa" ["abbr"]=> string(4) "IOWA" ["date"]=> NULL } 
    [35]=> array(4) { ["id"]=> string(2) "36" ["name"]=> string(8) "Michigan" ["abbr"]=> string(4) "MICH" ["date"]=> NULL } 
    [36]=> array(4) { ["id"]=> string(2) "37" ["name"]=> string(14) "Michigan State" ["abbr"]=> string(3) "MSU" ["date"]=> NULL } 
    [37]=> array(4) { ["id"]=> string(2) "38" ["name"]=> string(9) "Minnesota" ["abbr"]=> string(4) "MINN" ["date"]=> NULL } 
    [38]=> array(4) { ["id"]=> string(2) "39" ["name"]=> string(8) "Nebraska" ["abbr"]=> string(3) "NEB" ["date"]=> NULL } 
    [39]=> array(4) { ["id"]=> string(2) "40" ["name"]=> string(12) "Northwestern" ["abbr"]=> string(2) "NW" ["date"]=> NULL } 
    [40]=> array(4) { ["id"]=> string(2) "41" ["name"]=> string(8) "Illinois" ["abbr"]=> string(3) "ILL" ["date"]=> NULL } 
    [41]=> array(4) { ["id"]=> string(2) "42" ["name"]=> string(7) "Indiana" ["abbr"]=> string(3) "IND" ["date"]=> NULL } 
    [42]=> array(4) { ["id"]=> string(2) "43" ["name"]=> string(10) "Ohio State" ["abbr"]=> string(4) "OHST" ["date"]=> NULL } 
    [43]=> array(4) { ["id"]=> string(2) "44" ["name"]=> string(10) "Penn State" ["abbr"]=> string(3) "PSU" ["date"]=> NULL } 
    [44]=> array(4) { ["id"]=> string(2) "45" ["name"]=> string(6) "Purdue" ["abbr"]=> string(3) "PUR" ["date"]=> NULL } 
    [45]=> array(4) { ["id"]=> string(2) "46" ["name"]=> string(9) "Wisconsin" ["abbr"]=> string(4) "WISC" ["date"]=> NULL } 
    [46]=> array(4) { ["id"]=> string(2) "47" ["name"]=> string(13) "East Carolina" ["abbr"]=> string(3) "ECU" ["date"]=> NULL } 
    [47]=> array(4) { ["id"]=> string(2) "48" ["name"]=> string(16) "Florida Atlantic" ["abbr"]=> string(3) "FAU" ["date"]=> NULL } 
    [48]=> array(4) { ["id"]=> string(2) "49" ["name"]=> string(21) "Florida International" ["abbr"]=> string(3) "FIU" ["date"]=> NULL } 
    [49]=> array(4) { ["id"]=> string(2) "50" ["name"]=> string(8) "Marshall" ["abbr"]=> string(4) "MARS" ["date"]=> NULL } 
    [50]=> array(4) { ["id"]=> string(2) "51" ["name"]=> string(16) "Middle Tennessee" ["abbr"]=> string(4) "MTEN" ["date"]=> NULL } 
    [51]=> array(4) { ["id"]=> string(2) "52" ["name"]=> string(13) "Southern Miss" ["abbr"]=> string(3) "USM" ["date"]=> NULL } 
    [52]=> array(4) { ["id"]=> string(2) "53" ["name"]=> string(3) "UAB" ["abbr"]=> string(3) "UAB" ["date"]=> NULL } 
    [53]=> array(4) { ["id"]=> string(2) "54" ["name"]=> string(14) "Louisiana Tech" ["abbr"]=> string(4) "LATC" ["date"]=> NULL } 
    [54]=> array(4) { ["id"]=> string(2) "55" ["name"]=> string(11) "North Texas" ["abbr"]=> string(4) "NTEX" ["date"]=> NULL } 
    [55]=> array(4) { ["id"]=> string(2) "56" ["name"]=> string(4) "Rice" ["abbr"]=> string(4) "RICE" ["date"]=> NULL } 
    [56]=> array(4) { ["id"]=> string(2) "57" ["name"]=> string(14) "UT-San Antonio" ["abbr"]=> string(4) "UTSA" ["date"]=> NULL } 
    [57]=> array(4) { ["id"]=> string(2) "58" ["name"]=> string(6) "Tulane" ["abbr"]=> string(3) "TUL" ["date"]=> NULL } 
    [58]=> array(4) { ["id"]=> string(2) "59" ["name"]=> string(5) "Tulsa" ["abbr"]=> string(4) "TULS" ["date"]=> NULL } 
    [59]=> array(4) { ["id"]=> string(2) "60" ["name"]=> string(4) "UTEP" ["abbr"]=> string(4) "UTEP" ["date"]=> NULL } 
    [60]=> array(4) { ["id"]=> string(2) "61" ["name"]=> string(4) "Army" ["abbr"]=> string(4) "ARMY" ["date"]=> NULL } 
    [61]=> array(4) { ["id"]=> string(2) "62" ["name"]=> string(13) "Brigham Young" ["abbr"]=> string(3) "BYU" ["date"]=> NULL } 
    [62]=> array(4) { ["id"]=> string(2) "63" ["name"]=> string(5) "Idaho" ["abbr"]=> string(4) "IDAH" ["date"]=> NULL } 
    [63]=> array(4) { ["id"]=> string(2) "64" ["name"]=> string(4) "Navy" ["abbr"]=> string(4) "NAVY" ["date"]=> NULL } 
    [64]=> array(4) { ["id"]=> string(2) "65" ["name"]=> string(16) "New Mexico State" ["abbr"]=> string(4) "NMST" ["date"]=> NULL } 
    [65]=> array(4) { ["id"]=> string(2) "66" ["name"]=> string(10) "Notre Dame" ["abbr"]=> string(2) "ND" ["date"]=> NULL } 
    [66]=> array(4) { ["id"]=> string(2) "67" ["name"]=> string(5) "Akron" ["abbr"]=> string(4) "AKRN" ["date"]=> NULL } 
    [67]=> array(4) { ["id"]=> string(2) "68" ["name"]=> string(13) "Bowling Green" ["abbr"]=> string(4) "BGSU" ["date"]=> NULL } 
    [68]=> array(4) { ["id"]=> string(2) "69" ["name"]=> string(7) "Buffalo" ["abbr"]=> string(3) "BUF" ["date"]=> NULL } 
    [69]=> array(4) { ["id"]=> string(2) "70" ["name"]=> string(10) "Kent State" ["abbr"]=> string(4) "KENT" ["date"]=> NULL } 
    [70]=> array(4) { ["id"]=> string(2) "71" ["name"]=> string(13) "Massachusetts" ["abbr"]=> string(4) "MASS" ["date"]=> NULL } 
    [71]=> array(4) { ["id"]=> string(2) "72" ["name"]=> string(8) "Miami-OH" ["abbr"]=> string(4) "MIAO" ["date"]=> NULL } 
    [72]=> array(4) { ["id"]=> string(2) "73" ["name"]=> string(4) "Ohio" ["abbr"]=> string(4) "OHIO" ["date"]=> NULL } 
    [73]=> array(4) { ["id"]=> string(2) "74" ["name"]=> string(10) "Ball State" ["abbr"]=> string(4) "BALL" ["date"]=> NULL } 
    [74]=> array(4) { ["id"]=> string(2) "75" ["name"]=> string(16) "Central Michigan" ["abbr"]=> string(4) "CMIC" ["date"]=> NULL } 
    [75]=> array(4) { ["id"]=> string(2) "76" ["name"]=> string(16) "Eastern Michigan" ["abbr"]=> string(4) "EMIC" ["date"]=> NULL } 
    [76]=> array(4) { ["id"]=> string(2) "77" ["name"]=> string(17) "Northern Illinois" ["abbr"]=> string(3) "NIU" ["date"]=> NULL } 
    [77]=> array(4) { ["id"]=> string(2) "78" ["name"]=> string(6) "Toledo" ["abbr"]=> string(3) "TOL" ["date"]=> NULL } 
    [78]=> array(4) { ["id"]=> string(2) "79" ["name"]=> string(16) "Western Michigan" ["abbr"]=> string(4) "WMIC" ["date"]=> NULL } 
    [79]=> array(4) { ["id"]=> string(2) "80" ["name"]=> string(9) "Air Force" ["abbr"]=> string(3) "AFA" ["date"]=> NULL } 
    [80]=> array(4) { ["id"]=> string(2) "81" ["name"]=> string(11) "Boise State" ["abbr"]=> string(3) "BSU" ["date"]=> NULL } 
    [81]=> array(4) { ["id"]=> string(2) "82" ["name"]=> string(14) "Colorado State" ["abbr"]=> string(3) "CSU" ["date"]=> NULL } 
    [82]=> array(4) { ["id"]=> string(2) "83" ["name"]=> string(10) "New Mexico" ["abbr"]=> string(4) "NMEX" ["date"]=> NULL } 
    [83]=> array(4) { ["id"]=> string(2) "84" ["name"]=> string(10) "Utah State" ["abbr"]=> string(4) "UTST" ["date"]=> NULL } 
    [84]=> array(4) { ["id"]=> string(2) "85" ["name"]=> string(7) "Wyoming" ["abbr"]=> string(3) "WYO" ["date"]=> NULL } 
    [85]=> array(4) { ["id"]=> string(2) "86" ["name"]=> string(12) "Fresno State" ["abbr"]=> string(4) "FRES" ["date"]=> NULL } 
    [86]=> array(4) { ["id"]=> string(2) "87" ["name"]=> string(6) "Hawaii" ["abbr"]=> string(3) "HAW" ["date"]=> NULL } 
    [87]=> array(4) { ["id"]=> string(2) "88" ["name"]=> string(6) "Nevada" ["abbr"]=> string(3) "NEV" ["date"]=> NULL } 
    [88]=> array(4) { ["id"]=> string(2) "89" ["name"]=> string(15) "San Diego State" ["abbr"]=> string(4) "SDSU" ["date"]=> NULL } 
    [89]=> array(4) { ["id"]=> string(2) "90" ["name"]=> string(14) "San Jose State" ["abbr"]=> string(4) "SJST" ["date"]=> NULL } 
    [90]=> array(4) { ["id"]=> string(2) "91" ["name"]=> string(4) "UNLV" ["abbr"]=> string(4) "UNLV" ["date"]=> NULL } 
    [91]=> array(4) { ["id"]=> string(2) "92" ["name"]=> string(10) "California" ["abbr"]=> string(3) "CAL" ["date"]=> string(19) "2013-08-31 21:30:00" } 
    [92]=> array(4) { ["id"]=> string(2) "93" ["name"]=> string(6) "Oregon" ["abbr"]=> string(3) "ORE" ["date"]=> NULL } 
    [93]=> array(4) { ["id"]=> string(2) "94" ["name"]=> string(12) "Oregon State" ["abbr"]=> string(4) "ORST" ["date"]=> NULL } 
    [94]=> array(4) { ["id"]=> string(2) "95" ["name"]=> string(8) "Stanford" ["abbr"]=> string(4) "STAN" ["date"]=> NULL } 
    [95]=> array(4) { ["id"]=> string(2) "96" ["name"]=> string(10) "Washington" ["abbr"]=> string(4) "WASH" ["date"]=> string(19) "2013-08-31 21:00:00" } 
    [96]=> array(4) { ["id"]=> string(2) "97" ["name"]=> string(16) "Washington State" ["abbr"]=> string(3) "WSU" ["date"]=> NULL } 
    [97]=> array(4) { ["id"]=> string(2) "98" ["name"]=> string(7) "Arizona" ["abbr"]=> string(4) "ARIZ" ["date"]=> NULL } 
    [98]=> array(4) { ["id"]=> string(2) "99" ["name"]=> string(13) "Arizona State" ["abbr"]=> string(3) "ASU" ["date"]=> NULL } 
    [99]=> array(4) { ["id"]=> string(3) "100" ["name"]=> string(8) "Colorado" ["abbr"]=> string(3) "COL" ["date"]=> NULL } 
    [100]=> array(4) { ["id"]=> string(3) "101" ["name"]=> string(4) "UCLA" ["abbr"]=> string(4) "UCLA" ["date"]=> NULL } 
    [101]=> array(4) { ["id"]=> string(3) "102" ["name"]=> string(3) "USC" ["abbr"]=> string(3) "USC" ["date"]=> NULL } 
    [102]=> array(4) { ["id"]=> string(3) "103" ["name"]=> string(4) "Utah" ["abbr"]=> string(4) "UTAH" ["date"]=> NULL } 
    [103]=> array(4) { ["id"]=> string(3) "104" ["name"]=> string(7) "Florida" ["abbr"]=> string(3) "FLA" ["date"]=> NULL } 
    [104]=> array(4) { ["id"]=> string(3) "105" ["name"]=> string(7) "Georgia" ["abbr"]=> string(3) "UGA" ["date"]=> NULL } 
    [105]=> array(4) { ["id"]=> string(3) "106" ["name"]=> string(8) "Kentucky" ["abbr"]=> string(2) "UK" ["date"]=> NULL } 
    [106]=> array(4) { ["id"]=> string(3) "107" ["name"]=> string(8) "Missouri" ["abbr"]=> string(4) "MIZZ" ["date"]=> NULL } 
    [107]=> array(4) { ["id"]=> string(3) "108" ["name"]=> string(14) "South Carolina" ["abbr"]=> string(4) "SCAR" ["date"]=> NULL } 
    [108]=> array(4) { ["id"]=> string(3) "109" ["name"]=> string(9) "Tennessee" ["abbr"]=> string(4) "TENN" ["date"]=> NULL } 
    [109]=> array(4) { ["id"]=> string(3) "110" ["name"]=> string(10) "Vanderbilt" ["abbr"]=> string(4) "VAND" ["date"]=> NULL } 
    [110]=> array(4) { ["id"]=> string(3) "111" ["name"]=> string(7) "Alabama" ["abbr"]=> string(3) "ALA" ["date"]=> NULL } 
    [111]=> array(4) { ["id"]=> string(3) "112" ["name"]=> string(8) "Arkansas" ["abbr"]=> string(3) "ARK" ["date"]=> NULL } 
    [112]=> array(4) { ["id"]=> string(3) "113" ["name"]=> string(6) "Auburn" ["abbr"]=> string(3) "AUB" ["date"]=> NULL } 
    [113]=> array(4) { ["id"]=> string(3) "114" ["name"]=> string(3) "LSU" ["abbr"]=> string(3) "LSU" ["date"]=> NULL } 
    [114]=> array(4) { ["id"]=> string(3) "115" ["name"]=> string(17) "Mississippi State" ["abbr"]=> string(4) "MSST" ["date"]=> NULL } 
    [115]=> array(4) { ["id"]=> string(3) "116" ["name"]=> string(8) "Ole Miss" ["abbr"]=> string(4) "MISS" ["date"]=> NULL } 
    [116]=> array(4) { ["id"]=> string(3) "117" ["name"]=> string(9) "Texas A&M" ["abbr"]=> string(4) "TAMU" ["date"]=> NULL } 
    [117]=> array(4) { ["id"]=> string(3) "118" ["name"]=> string(14) "Arkansas State" ["abbr"]=> string(4) "ARST" ["date"]=> NULL } 
    [118]=> array(4) { ["id"]=> string(3) "119" ["name"]=> string(13) "Georgia State" ["abbr"]=> string(4) "GAST" ["date"]=> NULL } 
    [119]=> array(4) { ["id"]=> string(3) "120" ["name"]=> string(19) "Louisiana-Lafayette" ["abbr"]=> string(4) "LALA" ["date"]=> NULL } 
    [120]=> array(4) { ["id"]=> string(3) "121" ["name"]=> string(16) "Louisiana-Monroe" ["abbr"]=> string(4) "LAMO" ["date"]=> NULL } 
    [121]=> array(4) { ["id"]=> string(3) "122" ["name"]=> string(13) "South Alabama" ["abbr"]=> string(4) "SOAL" ["date"]=> NULL } 
    [122]=> array(4) { ["id"]=> string(3) "123" ["name"]=> string(11) "Texas State" ["abbr"]=> string(4) "TXST" ["date"]=> NULL } 
    [123]=> array(4) { ["id"]=> string(3) "124" ["name"]=> string(4) "Troy" ["abbr"]=> string(4) "TROY" ["date"]=> NULL } 
    [124]=> array(4) { ["id"]=> string(3) "125" ["name"]=> string(16) "Western Kentucky" ["abbr"]=> string(3) "WKU" ["date"]=> NULL } }

您也可以嘗試以下方法:

$team->date = new JDate($tc['abbr']);

這樣布局就可以為您格式化日期。 我更喜歡返回正確的對象,而不是返回那些使該類東西弄亂的布局(布局應該非常愚蠢)。

暫無
暫無

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

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