Autor Zpráva
Michales
Profil
Ahoj,
v php a i v admineru použiji stejný dotaz:
SELECT *
FROM `playerstaty1`
WHERE `confid` = '12'
ORDER BY `Pos` AND `Team` ASC

V admineru mám správně seřazeno:


Pomocí php špatně seřazeno:



Script:
pastebin

Prosím o radu, jak vyřešit tento problém.
M02
Profil *
AND je logický operátor, u vícesloupcového řazení se (takto) nepoužívá.
Michales
Profil
M02:
Při změně na Order by Pos,Team ASC je výsledek tento: tabulky.funsite.cz/statistiky_zapas.php?conf=3&id=1002

Takže také to není správně
Alphard
Profil
V těch sloupcích na webu se nevyznám. Ten dotaz v admineru nedává smysl, ale jestli jsou ty uvedené výsledky požadované, měl by být dotaz takto order by Team desc, Pos, na pořadí záleží. Znamená to prvně seřadit podle soupce Team sestupně a pak tam, kde je první sloupec stejný, seřadit podle sloupce Pos (vzestupně, to je výchozí volba).
Michales
Profil
Alphard:
Ani to není správně, viz odkaz výše.
Lonanek
Profil
A jak by to tedy mělo být správně?
Dotazy nejsou stejné....
Michales
Profil
Spravne to ma byt tak jak je to na obrazku c. 1. V prvnim prispevku.
S tim ze brankari jsou oddeleni od hracu, tak jak je videt na ob. C.2. Prvne brankari a pak hraci jednoho tymu, a pak brankari a hraci druheho tymu.
Lonanek
Profil
... Order by Team DESC, Pos ...
jak uváděl [#4] Alphard
Michales
Profil
Lonanek:
Presne tak to je a neni to spravne
Lonanek
Profil
Chybu bych hledal ve složité logice výpisu (ř. 23 a dále v odkazovaném kódu).
Když je to seřazeno, tak proč tak složitě zjišťovat kdo a co je zač?

Nechte si celý dotaz projít PMA (nebo Adminerem) a uvidíte, že je to podle Vašich požadavků.
Nejprve tým sestupně dle abecedy, pak post hráče vzestupně.
Michales
Profil
Lonanek:
Ja verim ze ano. Proto je to take v sekci php ;-)
Lonanek
Profil
Tak postupujte logicky. První se do proměnné načte TRI/Goalie, ..., pak TRI/Player, ..., pak SPA/Goalie, ..., pak SPA/Player.
Na co složitě pokaždé testovat kdo je z jakého týmu a na jaké pozici.

něco jako:
$team = "";
$pozice = "";

while ($data = dotaz)
{
    if ($data['Team'] != $team)
    {
        ... hlavička pro popis týmu ...
        $team = $data['Team'];
    }

    if ($data['POS'] != $pozice)
    {
        ... hlavička pro popis hráče ...
        $pozice = $data['POS'];
        if ($pozice == "Goalie")
        {
            ... vypis hlavičky pro brankaře ...
        } else {
            ... vypis hlavičky pro hráče ...
        }
    }
    if ($pozice == "Goalie")
    {
        ... vypis dat pro brankaře ...
    } else {
        ... vypis dat pro hráče ...
    }
}

Nelekejte se!
Tohle Vám vyhovuje?
Michales
Profil
Lonanek:
Děkuji mockrát, to funguje perfektně. Někdy stačí se pořádně zamyslet.
Ale nechápu jak jste se mi dostal na FTP :-D
Tomášeek
Profil
Lonanek:
Je to zcela mimo téma, ale...

Uvědom si prosím, že přestože s dobrým úmyslem, nesmíš [zneužívat práva] provádět jakékoliv změny na cizím webhostingu, byť k němu máš [z pozice zaměstnance] přístup. K tomuto tě nic neopravňuje a navíc jsi snadno postižitelný.
CZechBoY
Profil
Lonanek, Tomášeek:
jono, dej si do profilu Endora pomocník; nebo za jméno [Endora.cz] :D
Michales
Profil
Po pravde pokud jde o zamestnance endory, nemam s tim sebemensi problem. Uz jsem se bal nejakeho jineho zneuziti.
Keeehi
Profil
Michales:
To že ty s tím nemáš problém neznamená, že to je správně.
Jinak úplně o zaměstnance endory nejde. Je to prý externí spolupracovník. Co má evidentně přístup k souborovým systémům serverů.
Enko
Profil
Michales:
Osobně v přístupu do souborového systému bez povolení vidím velký problém. Nemáš tam uložená nějaká citlivá data? Nemáš tam uložené přístupy do databází, mailboxů, nějaká tvoje soukromá data? Pokud by mě, někdo něco takového udělal, určitě bych to řešil s poskytovatelem služeb, požadoval bych vyvození důsledků a kdyby se nic nic, ze strany poskytovatele nestalo, postaral bych se o zveřejnění.
Michales
Profil
Enko:
Ano mám tam samozřejmě přístupy do databáze.
A ne, nemíním to nijak řešit.

Moderátor Alphard: Dál myslím nemá cenu tady diskovat. Zamykám.
Toto téma je uzamčeno. Odpověď nelze zaslat.