Przejdź do zawartości

Mikael Ishak: Różnice pomiędzy wersjami

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
Linia 41: Linia 41:




{{HistoriaWystepowPiłka|zawodnik=Mikael Ishak}}
{{Moduł:HistoriaWystepowPiłka|zawodnik=Mikael Ishak}}




[[Kategoria:Urodzeni 31 marca|Ishak Mikael]][[Kategoria:Ludzie_-_I|Ishak Mikael]][[Kategoria:Piłkarze Lecha Poznań|Ishak Mikael]]
[[Kategoria:Urodzeni 31 marca|Ishak Mikael]][[Kategoria:Ludzie_-_I|Ishak Mikael]][[Kategoria:Piłkarze Lecha Poznań|Ishak Mikael]]

Wersja z 06:01, 23 sie 2026



Mikael Ishak
Dane osobowe
Data urodzenia 31 marca 1993
Pozycja napastnik
Informacje klubowe
Klub Lech Poznań
Kariera klubowa
  • 2020- Lech Poznań

Mikael Ishak (ur. 31 marca 1993,) – napastnik Lecha Poznań od 2020 roku. Napastnik sezonu 2021/22, dwukrotny Mistrz Polski. Reprezentant Szwecji, złoty medalista Mistrzostw Europy U21, olimpijczyk.





local p = {}

-- ========================================================= -- MODUŁ:HISTORIAWYSTĘPÓW -- -- Historia występów zawodnika - PIŁKA NOŻNA -- -- Pokazuje wyłącznie występy zawodnika -- w drużynach poznańskich. -- =========================================================


-- ========================================================= -- DRUŻYNY POZNAŃSKIE -- =========================================================

local druzynyPoznanskie = {

   ["Lech Poznań"] = true,
   ["Warta Poznań"] = true,
   ["Lech Poznań UAM"] = true,
   ["Enea Basket Poznań"] = true,
   ["Enea AZS Politechnika Poznań"] = true,
   ["AZS Politechnika Poznań"] = true,
   ["MUKS Poznań"] = true

}


function p.main(frame)

   local zawodnik =
       mw.text.trim(
           frame.args.zawodnik or ""
       )


   if zawodnik == "" then
       zawodnik =
           mw.title
               .getCurrentTitle()
               .text
   end


   -- =====================================================
   -- BEZPIECZNE PRZYGOTOWANIE NAZWY ZAWODNIKA
   -- =====================================================
   local zawodnikSQL =
       mw.ustring.gsub(
           zawodnik,
           "'",
           ""
       )


   -- =====================================================
   -- POLA POBIERANE Z CARGO
   -- =====================================================
   local fields = table.concat({
       "UdzialZawodnika.mecz=mecz",
       "UdzialZawodnika.druzyna=druzyna",
       "UdzialZawodnika.minuty=minuty",
       "UdzialZawodnika.minuty_format=minuty_format",
       "UdzialZawodnika.gol=gol",
       "UdzialZawodnika.asysta=asysta",
       "Mecze.data=data",
       "Mecze.sezon=sezon",
       "Mecze.druzyna1=druzyna1",
       "Mecze.druzyna2=druzyna2",
       "Mecze.wynik=wynik",
       "Mecze.strona_meczu=strona_meczu"
   }, ",")


   -- =====================================================
   -- ZAPYTANIE CARGO
   -- =====================================================
   local args = {
       join =
           "UdzialZawodnika.mecz=Mecze.id",
       where =
           "UdzialZawodnika.zawodnik='"
           .. zawodnikSQL
           .. "' AND UdzialZawodnika.minuty > 0",
       orderBy =
           "Mecze.data ASC",
       limit = 5000
   }


   local rows =
       mw.ext.cargo.query(
           "UdzialZawodnika,Mecze",
           fields,
           args
       )


   -- =====================================================
   -- FILTR DRUŻYN POZNAŃSKICH
   -- =====================================================
   local tylkoPoznanskie = {}


   if rows then
       for _, row in ipairs(rows) do
           local druzyna =
               mw.text.trim(
                   row.druzyna or ""
               )


           if druzynyPoznanskie[druzyna] then
               table.insert(
                   tylkoPoznanskie,
                   row
               )
           end
       end
   end


   rows =
       tylkoPoznanskie


   -- =====================================================
   -- BRAK DANYCH
   -- =====================================================
   if not rows or #rows == 0 then
       return
           "Brak wprowadzonych występów zawodnika "
           .. "dla drużyn poznańskich w bazie."
   end


   -- =====================================================
   -- PODSUMOWANIE
   -- =====================================================
   local function nowePodsumowanie()
       return {
           wystepy = 0,
           zwyciestwa = 0,
           porazki = 0,
           remisy = 0,
           gole = 0,
           minuty = 0,
           asysty = 0
       }
   end


   -- =====================================================
   -- PODSUMOWANIA
   -- =====================================================
   local suma =
       nowePodsumowanie()


   local dom =
       nowePodsumowanie()


   local wyjazd =
       nowePodsumowanie()


   -- =====================================================
   -- SEZONY
   -- =====================================================
   local sezony = {}


   -- =====================================================
   -- KLUBY
   -- =====================================================
   local kluby = {}


   -- =====================================================
   -- OKREŚLENIE WYNIKU MECZU
   -- =====================================================
   local function okreslWynik(row)
       local d1 =
           row.druzyna1 or ""


       local d2 =
           row.druzyna2 or ""


       local druzyna =
           row.druzyna or ""


       local wynikMeczu =
           row.wynik or ""


       local g1, g2 =
           wynikMeczu:match(
               "(%d+)%s*:%s*(%d+)"
           )


       if not g1 or not g2 then
           return nil
       end


       g1 =
           tonumber(g1)


       g2 =
           tonumber(g2)


       if druzyna == d1 then
           if g1 > g2 then
               return "W"
           elseif g1 < g2 then
               return "P"
           else
               return "R"
           end


       elseif druzyna == d2 then
           if g2 > g1 then
               return "W"
           elseif g2 < g1 then
               return "P"
           else
               return "R"
           end
       end


       return nil
   end


   -- =====================================================
   -- DODANIE MECZU DO PODSUMOWANIA
   -- =====================================================
   local function dodajDoPodsumowania(
       stat,
       row
   )
       stat.wystepy =
           stat.wystepy + 1


       stat.gole =
           stat.gole
           + (
               tonumber(row.gol or 0)
               or 0
           )


       stat.minuty =
           stat.minuty
           + (
               tonumber(row.minuty or 0)
               or 0
           )


       stat.asysty =
           stat.asysty
           + (
               tonumber(row.asysta or 0)
               or 0
           )


       local wynik =
           okreslWynik(row)


       if wynik == "W" then
           stat.zwyciestwa =
               stat.zwyciestwa + 1


       elseif wynik == "P" then
           stat.porazki =
               stat.porazki + 1


       elseif wynik == "R" then
           stat.remisy =
               stat.remisy + 1
       end
   end


   -- =====================================================
   -- PRZEJŚCIE PRZEZ WSZYSTKIE MECZE
   -- =====================================================
   for _, row in ipairs(rows) do


       -- -----------------------------------------------
       -- WSZYSTKIE
       -- -----------------------------------------------
       dodajDoPodsumowania(
           suma,
           row
       )


       -- -----------------------------------------------
       -- DOM / WYJAZD
       -- -----------------------------------------------
       local d1 =
           row.druzyna1 or ""


       local d2 =
           row.druzyna2 or ""


       local druzyna =
           row.druzyna or ""


       if druzyna == d1 then
           dodajDoPodsumowania(
               dom,
               row
           )


       elseif druzyna == d2 then
           dodajDoPodsumowania(
               wyjazd,
               row
           )
       end


       -- -----------------------------------------------
       -- SEZON
       -- -----------------------------------------------
       local sezon =
           row.sezon or ""


       if sezon == "" then
           sezon =
               "Brak sezonu"
       end


       if not sezony[sezon] then
           sezony[sezon] =
               nowePodsumowanie()
       end


       dodajDoPodsumowania(
           sezony[sezon],
           row
       )


       -- -----------------------------------------------
       -- KLUB
       -- -----------------------------------------------
       if druzyna == "" then
           druzyna =
               "Brak klubu"
       end


       if not kluby[druzyna] then
           kluby[druzyna] =
               nowePodsumowanie()
       end


       dodajDoPodsumowania(
           kluby[druzyna],
           row
       )
   end


   -- =====================================================
   -- SORTOWANIE SEZONÓW
   -- =====================================================
   local listaSezonow = {}


   for sezon, _ in pairs(sezony) do
       table.insert(
           listaSezonow,
           sezon
       )
   end


   table.sort(
       listaSezonow,
       function(a, b)
           return a > b
       end
   )


   -- =====================================================
   -- SORTOWANIE KLUBÓW
   -- =====================================================
   local listaKlubow = {}


   for klub, _ in pairs(kluby) do
       table.insert(
           listaKlubow,
           klub
       )
   end


   table.sort(
       listaKlubow
   )


   -- =====================================================
   -- OPIS MECZU
   -- =====================================================
   local function rekordMecz(row)
       local d1 =
           row.druzyna1 or ""


       local d2 =
           row.druzyna2 or ""


       local data =
           row.data or ""


       local wynikMeczu =
           row.wynik or ""


       local strona =
           row.strona_meczu or ""


       local meczTekst =
           d1
           .. " – "
           .. d2


       if strona ~= "" then
           meczTekst =
               "[["
               .. strona
               .. "|"
               .. d1
               .. " – "
               .. d2
               .. "]]"
       end


       if data ~= "" then
           meczTekst =
               meczTekst
               .. " ("
               .. data
               .. ")"
       end


       if wynikMeczu ~= "" then
           meczTekst =
               meczTekst
               .. " "
               .. wynikMeczu
       end


       return meczTekst
   end


   -- =====================================================
   -- REKORDY
   -- =====================================================
   local rekordGole = -1
   local rekordAsysty = -1


   local meczeGole = {}
   local meczeAsysty = {}


   -- =====================================================
   -- WYSZUKIWANIE REKORDÓW
   -- =====================================================
   for _, row in ipairs(rows) do
       local gole =
           tonumber(row.gol or 0)
           or 0


       local asysty =
           tonumber(row.asysta or 0)
           or 0


       -- -----------------------------------------------
       -- GOLE
       -- -----------------------------------------------
       if gole > rekordGole then
           rekordGole =
               gole
           meczeGole =
               { row }


       elseif gole == rekordGole then
           table.insert(
               meczeGole,
               row
           )
       end


       -- -----------------------------------------------
       -- ASYSTY
       -- -----------------------------------------------
       if asysty > rekordAsysty then
           rekordAsysty =
               asysty
           meczeAsysty =
               { row }


       elseif asysty == rekordAsysty then
           table.insert(
               meczeAsysty,
               row
           )
       end
   end


   -- =====================================================
   -- LISTA REKORDÓW
   -- =====================================================
   local function listaRekordow(lista)
       local wynikRekordu = {}


       for _, row in ipairs(lista) do
           table.insert(
               wynikRekordu,
               rekordMecz(row)
           )
       end


       return table.concat(
           wynikRekordu,
           "
" )
   end


   -- =====================================================
   -- WYNIK
   -- =====================================================
   local wynik = {}


   -- =====================================================
   -- HISTORIA
   -- =====================================================
   table.insert(
       wynik,
       "== Historia występów =="
   )


   table.insert(
       wynik,
       ""
   )


   -- =====================================================
   -- PODSUMOWANIE
   -- =====================================================
   table.insert(
       wynik,
       "=== Podsumowanie wszystkich spotkań ==="
   )


   table.insert(
       wynik,
       ""
   )


   table.insert(
       wynik,
       '{| class="wikitable" style="width:100%; text-align:center;"'
   )


   table.insert(
       wynik,
       "! "
   )


   table.insert(
       wynik,
       "! Wszystkie spotkania"
   )


   table.insert(
       wynik,
       "! 🏠 Mecze domowe"
   )


   table.insert(
       wynik,
       "! ✈️ Mecze wyjazdowe"
   )


   -- WYSTĘPY
   table.insert(wynik, "|-")
   table.insert(wynik, "! Występy")
   table.insert(wynik, "| " .. suma.wystepy .. "")
   table.insert(wynik, "| " .. dom.wystepy .. "")
   table.insert(wynik, "| " .. wyjazd.wystepy .. "")


   -- ZWYCIĘSTWA
   table.insert(wynik, "|-")
   table.insert(wynik, "! Zwycięstwa")
   table.insert(wynik, "| " .. suma.zwyciestwa .. "")
   table.insert(wynik, "| " .. dom.zwyciestwa .. "")
   table.insert(wynik, "| " .. wyjazd.zwyciestwa .. "")


   -- PORAŻKI
   table.insert(wynik, "|-")
   table.insert(wynik, "! Porażki")
   table.insert(wynik, "| " .. suma.porazki .. "")
   table.insert(wynik, "| " .. dom.porazki .. "")
   table.insert(wynik, "| " .. wyjazd.porazki .. "")


   -- REMISY
   table.insert(wynik, "|-")
   table.insert(wynik, "! Remisy")
   table.insert(wynik, "| " .. suma.remisy .. "")
   table.insert(wynik, "| " .. dom.remisy .. "")
   table.insert(wynik, "| " .. wyjazd.remisy .. "")


   -- GOLE
   table.insert(wynik, "|-")
   table.insert(wynik, "! Gole")
   table.insert(wynik, "| " .. suma.gole .. "")
   table.insert(wynik, "| " .. dom.gole .. "")
   table.insert(wynik, "| " .. wyjazd.gole .. "")


   -- MINUTY
   table.insert(wynik, "|-")
   table.insert(wynik, "! Minuty")
   table.insert(wynik, "| " .. suma.minuty .. "")
   table.insert(wynik, "| " .. dom.minuty .. "")
   table.insert(wynik, "| " .. wyjazd.minuty .. "")


   -- ASYSTY
   table.insert(wynik, "|-")
   table.insert(wynik, "! Asysty")
   table.insert(wynik, "| " .. suma.asysty .. "")
   table.insert(wynik, "| " .. dom.asysty .. "")
   table.insert(wynik, "| " .. wyjazd.asysty .. "")


   table.insert(
       wynik,
       "|}"
   )


   table.insert(
       wynik,
       ""
   )


   -- =====================================================
   -- NAJLEPSZE WYSTĘPY
   -- =====================================================
   table.insert(
       wynik,
       "=== Najlepsze występy ==="
   )


   table.insert(
       wynik,
       ""
   )


   table.insert(
       wynik,
       '{| class="wikitable" style="width:100%;"'
   )


   table.insert(
       wynik,
       "! Rekord"
   )


   table.insert(
       wynik,
       "! Wynik"
   )


   table.insert(
       wynik,
       "! Mecz / mecze"
   )


   -- GOLE
   table.insert(wynik, "|-")
   table.insert(
       wynik,
       "! ⚽ Najwięcej goli"
   )
   table.insert(
       wynik,
       "| " .. rekordGole .. ""
   )
   table.insert(
       wynik,
       "| " .. listaRekordow(meczeGole)
   )


   -- ASYSTY
   table.insert(wynik, "|-")
   table.insert(
       wynik,
       "! 🎯 Najwięcej asyst"
   )
   table.insert(
       wynik,
       "| " .. rekordAsysty .. ""
   )
   table.insert(
       wynik,
       "| " .. listaRekordow(meczeAsysty)
   )


   table.insert(
       wynik,
       "|}"
   )


   table.insert(
       wynik,
       ""
   )


   -- =====================================================
   -- PODSUMOWANIE SEZONÓW
   -- =====================================================
   table.insert(
       wynik,
       "=== Podsumowanie sezonów ==="
   )


   table.insert(
       wynik,
       ""
   )


   table.insert(
       wynik,
       '{| class="wikitable sortable" style="width:100%; text-align:center;"'
   )


   table.insert(wynik, "! Sezon")
   table.insert(wynik, "! Występy")
   table.insert(wynik, "! Zwycięstwa")
   table.insert(wynik, "! Porażki")
   table.insert(wynik, "! Remisy")
   table.insert(wynik, "! Gole")
   table.insert(wynik, "! Minuty")
   table.insert(wynik, "! Asysty")


   for _, sezon in ipairs(listaSezonow) do
       local stat =
           sezony[sezon]


       table.insert(
           wynik,
           "|-"
       )


       table.insert(
           wynik,
           "| "
           .. sezon
           .. ""
       )


       table.insert(
           wynik,
           "| " .. stat.wystepy
       )


       table.insert(
           wynik,
           "| " .. stat.zwyciestwa
       )


       table.insert(
           wynik,
           "| " .. stat.porazki
       )


       table.insert(
           wynik,
           "| " .. stat.remisy
       )


       table.insert(
           wynik,
           "| " .. stat.gole
       )


       table.insert(
           wynik,
           "| " .. stat.minuty
       )


       table.insert(
           wynik,
           "| " .. stat.asysty
       )
   end


   table.insert(
       wynik,
       "|}"
   )


   table.insert(
       wynik,
       ""
   )


   -- =====================================================
   -- PODSUMOWANIE WEDŁUG KLUBU
   -- =====================================================
   table.insert(
       wynik,
       "=== Podsumowanie według klubu ==="
   )


   table.insert(
       wynik,
       ""
   )


   table.insert(
       wynik,
       '{| class="wikitable sortable" style="width:100%; text-align:center;"'
   )


   table.insert(wynik, "! Klub")
   table.insert(wynik, "! Występy")
   table.insert(wynik, "! Zwycięstwa")
   table.insert(wynik, "! Porażki")
   table.insert(wynik, "! Remisy")
   table.insert(wynik, "! Gole")
   table.insert(wynik, "! Minuty")
   table.insert(wynik, "! Asysty")


   for _, klub in ipairs(listaKlubow) do
       local stat =
           kluby[klub]


       table.insert(
           wynik,
           "|-"
       )


       table.insert(
           wynik,
           "| "
           .. klub
           .. ""
       )


       table.insert(
           wynik,
           "| " .. stat.wystepy
       )


       table.insert(
           wynik,
           "| " .. stat.zwyciestwa
       )


       table.insert(
           wynik,
           "| " .. stat.porazki
       )


       table.insert(
           wynik,
           "| " .. stat.remisy
       )


       table.insert(
           wynik,
           "| " .. stat.gole
       )


       table.insert(
           wynik,
           "| " .. stat.minuty
       )


       table.insert(
           wynik,
           "| " .. stat.asysty
       )
   end


   table.insert(
       wynik,
       "|}"
   )


   table.insert(
       wynik,
       ""
   )


   -- =====================================================
   -- TABELA WSZYSTKICH WYSTĘPÓW
   -- =====================================================
   table.insert(
       wynik,
       "=== Mecze ==="
   )


   table.insert(
       wynik,
       ""
   )


   table.insert(
       wynik,
       '{| class="wikitable sortable" style="width:100%;"'
   )


   table.insert(wynik, "! Nr")
   table.insert(wynik, "! Sezon")
   table.insert(wynik, "! Data")
   table.insert(wynik, "! Miejsce")
   table.insert(wynik, "! Przeciwnik")
   table.insert(wynik, "! Wynik")
   table.insert(wynik, "! Min.")
   table.insert(wynik, "! Gole")
   table.insert(wynik, "! As.")
   table.insert(wynik, "! Jubileusz")


   -- =====================================================
   -- POSZCZEGÓLNE MECZE
   -- =====================================================
   for i, row in ipairs(rows) do
       local data =
           row.data or ""


       local sezon =
           row.sezon or ""


       local d1 =
           row.druzyna1 or ""


       local d2 =
           row.druzyna2 or ""


       local druzyna =
           row.druzyna or ""


       local wynikMeczu =
           row.wynik or ""


       local strona =
           row.strona_meczu or ""


       local minutyFormat =
           row.minuty_format or ""


       local gole =
           row.gol or "0"


       local asysty =
           row.asysta or "0"


       -- -----------------------------------------------
       -- DOM / WYJAZD
       -- -----------------------------------------------
       local miejsce = ""


       if druzyna == d1 then
           miejsce =
               "🏠 Dom"


       elseif druzyna == d2 then
           miejsce =
               "✈️ Wyjazd"
       end


       -- -----------------------------------------------
       -- PRZECIWNIK
       -- -----------------------------------------------
       local przeciwnik = ""


       if druzyna == d1 then
           przeciwnik =
               d2


       elseif druzyna == d2 then
           przeciwnik =
               d1


       else
           przeciwnik =
               d1
       end


       -- -----------------------------------------------
       -- LINK DO MECZU
       -- -----------------------------------------------
       local meczTekst =
           przeciwnik


       if strona ~= "" then
           meczTekst =
               "[["
               .. strona
               .. "|"
               .. przeciwnik
               .. "]]"
       end


       -- -----------------------------------------------
       -- JUBILEUSZ
       -- -----------------------------------------------
       local jubileusz = ""


       if i % 50 == 0 then
           jubileusz =
               "🏆 "
               .. i
               .. ". występ"
       end


       -- -----------------------------------------------
       -- WIERSZ
       -- -----------------------------------------------
       table.insert(
           wynik,
           "|-"
       )


       table.insert(
           wynik,
           "| " .. i
       )


       table.insert(
           wynik,
           "| " .. sezon
       )


       table.insert(
           wynik,
           "| " .. data
       )


       table.insert(
           wynik,
           "| " .. miejsce
       )


       table.insert(
           wynik,
           "| " .. meczTekst
       )


       table.insert(
           wynik,
           "| " .. wynikMeczu
       )


       table.insert(
           wynik,
           "| " .. minutyFormat
       )


       table.insert(
           wynik,
           "| " .. gole
       )


       table.insert(
           wynik,
           "| " .. asysty
       )


       table.insert(
           wynik,
           "| " .. jubileusz
       )
   end


   -- =====================================================
   -- KONIEC TABELI
   -- =====================================================
   table.insert(
       wynik,
       "|}"
   )


   -- =====================================================
   -- ZWRÓCENIE WYNIKU
   -- =====================================================
   return table.concat(
       wynik,
       "\n"
   )

end


return p