Adminer 3.6.0

Školení, která pořádám

Adminer 3.6.0 přináší jednu hlavní novinku a několik drobných vylepšení. Hlavní novinkou je odkaz pro nahrání další stránky ve výpisu dat, který plní tyto funkce:

  1. Několik lidí mne žádalo, abych odkaz pro přechod na další stránku zvýraznil. Dokonce na to vznikl i pull request.
  2. Data se nahrávají AJAXem, takže je to o něco rychlejší. Jednu dobu se skoro všechny odkazy nahrávaly AJAXem, tohle se ale liší tím, že se přenáší skutečně jen další řádky a třeba celkový počet záznamů se znovu vůbec nepočítá.
  3. Po nahrání dat se stránka neposune, takže člověk neztratí kontext.

Další vylepšení jsou drobnější:

Další změna, ke které jsem se odhodlával několik let, je komprese překladů, CSS a JavaScriptu. Většina uživatelů to sice za důležité nepovažuje, ale pokusil jsem se to implementovat tak, aby to nezdržovalo a nikoho neomezovalo. Některá rozhodnutí při vývoji dělám s ohledem na velikost (pokud jsou dvě verze kódu stejně výkonné a obdobně čitelné, použiji tu kratší) a tady by mělo zůstat ležet na stole 100 kB bez povšimnutí? Zkompilovaný soubor můžu otevřít ve SciTE s mým nastavením a uložit ho bez poškození. Kompresi provádím algoritmem LZW.

Spolu s tím jsem také posílil kešování statických souborů. Již dříve se posílaly s „nekonečnou“ platností (hlavička Expires). Nově se přikládá i hlavička Last-Modified, takže v případě běžného obnovení stránky (např. klávesou F5) prohlížeč pošle hlavičku If-Modified-Since a Adminer jen vrátí stavový kód 304 Not Modified.

Jakub Vrána, Adminer, 17.9.2012, diskuse: 50 (nové: 0)

Diskuse

Eda:

Odkaz na LZW: stránka nenalezena :-)

ikona Jakub Vrána OpenID:

Díky za upozornění, opravil jsem.

juneau:

Zdravím, přimlouval bych se i za jednu drobnost, nebo alespoň radu, jak řešit rozšíření: používám Adminer na mnoha webech, kdy mám od hostingu tradičně k dispozici jen jednu (MySQL) databázi. Tedy ke každé databázi unikátní přihlašovací údaje. Když se přihlásím, mám na výběr dvě databáze, information_schema a hlavní databázi.

Líbilo by se mi, kdyby za této situace Adminer tuto hlavní databázi rovnou vybral a já s ní mohl hned pracovat. Na webech s více databázemi pak opět vypsání úvodního seznamu. Je možné to nějak přes rozšíření řešit? (možnost přihlašovat se do databáze rovnou mi moc nepomáhá, spousta webů, spousta různých jmen databází, nepamatuji si je)

ikona Jakub Vrána OpenID:

Ano, viz https://github.com/vrana/adminer/blob/v3.….inc.php#L20.

LT:

Zdravím. Neviem či som jediný komu nová verzia admineru robí problémy (na jednom velkom sk-cz hostingu)? Pri všetkých weboch mi adminer vypíše len zopár otáznikov: "??????"

Testované na viacerých doménach s rôznymi nastaveniami, rôzne verzie admineru (3.6.0 len mysql, len mysql sk, všetky jazyky...). Staršie verzie som používal bez problémov.

Vďaka za pomoc.

msx:

Osobne mám skúsenosti s virtuálnym serverom vo WebSupporte a Adminer tam funguje bez problémov. S active.cz/sk skúsenosť nemám.

ikona Jakub Vrána OpenID:

Pokud Adminer kopírujete pomocí FTP, tak použijte binární režim. Pokud to nepomůže, tak bych potřeboval postup, jak to reprodukovat.

LT:

Pomohlo to. Vďaka

msx:

Tá novo objavená funkcia values(), to je akože vtip a myslí sa tým toto alebo niečo inšie:
insert into tabulka (stlpec1, stlpec2) values (hodnota1, hodnota2)

Ja osobne na vkladanie používam:
insert into tabulka set stlpce1=hodnota1, stlpec2=hodnota2, kvôli jednoduchej zameniteľnosti pre update (vytváram len jednu kostru hodnôt, ale to som asi odbočil. Spomenul som to preto, lebo niekde na tomto blogu sa hovorí o jednoduchom vkladaní hodnôť a tento spôsob tam chýba a spomenutá funkcia VALUES() mi to pripomenula (v prvej chvíli som myslel, že používal spôsob ako ja.

A ešte otázka, čo je podpora pre geometriu?

fos4:

Myšleno to je u ON DUPLICATE KEY:

INSERT INTO `table` SET sloupec1 = 'hrozne dlouha hodnota'
ON DUPLICATE KEY UPDATE UPDATE
sloupec1 = VALUES(sloupec1) ## neopakuje se 'hrozne dlouha hodnota'

msx:

Aha, to je tiež pre mňa nová vec.

ikona Jakub Vrána OpenID:

Funkce VALUES() a klauzule VALUES jsou dvě různé věci.

Geometrií mám na mysli toto: http://dev.mysql.com/doc/refman/4.1/en/spatial-extensions.html.

msx:

Mohol som to do jedného príspevku:
Chcel by som spraviť mimo Adminera script, ktorý mi aktualizuje verziu na novšiu na url, kde bude vystavený (samozrejme o scripte budem vedieť len ja). Chcem sa spýtať na tieto veci:
1. Na akej url je uložená verzia Adminera? Niekde som to tuším nedávno čítal, ale nie som si istý, či to nebolo pre úplne iný program a teda by som zbytočne hľadal, ak sa to Adminera netýkalo.
2. Existuje nejaká stabilná adresa na stiahnutie Adminera pre použitie toho scriptu?

LT:

www.adminer.org/latest[-mysql][-sk].php

msx:

Myslel som funkčné url. ;-) Nič v zlom, ber ma s rezervou.

LT:

Stačí si url poskladať podla požiadaviek:
www.adminer.org/latest-mysql-sk.php stiahne mysql sk verziu,
www.adminer.org/latest-mysql.php stiahne mysql so všetkymi jazykmi a podobne...

msx:

Aha, prepáč, neuvedomil som si, že to je "interaktívny" link. Ospravedlňujem sa.

ikona Jakub Vrána OpenID:

Odkazy jsem zneaktivnil, aby mi tam nechodili roboti. Patří před ně http://.

Petrrr:

Skoda, ze jiz podruhe je nejakej update tykajici se vzhledu, ale skin upravenej neni :/

BTW: pouzivam styl od Miroslava Pokorneho (timto mu dekuji za nejhezci styl)

ikona Jakub Vrána OpenID:

Díky za upozornění. Opravil jsem tlačítko pro odhlášení. Nefunguje ještě něco dalšího?

Petrrr:

Diky za opravu, nyni to vypada, ze je vse ok.

msx:

Ako určím, že do ktorej databázy chcem urobiť alter export? Mám povedzme databázu, v druhej databáze (totožnej) urobím zmeny a teraz tieto zmeny chcem cez alter export preniesť do prvej. Na adminer.cz je nejaké video, ale tam nie je vysvetlené ako určím hlavnú databázu.

ikona Jakub Vrána OpenID:

Exportuje se z momentálně vybrané databáze. Importuje se do momentálně vybrané databáze.

msx:

Aha, takže som sa mal opýtať inak. Jednu databázu vyberiem a do druhej chcem alter export, ako ju mám vybrať alebo určiť, že sa jedná o ňu?

msx:

Už druhýkrát sa mi vo Firefoxe stalo za 24 hodín, že kliknem na MySQL, aby som zmenil prihlásenie z jednej databázy na druhú (každá databáza je prístupná po inými prihlasovacími údajmi a prihlasovacie údaje nie sú. Sú proste vymazané. Po zadaní akýchkoľvek údajov mi naskočí lenn prázdna stránka (Adminer 3.5 to nerobil nikdy). Vôbec ma teda neprihlási a ani nenapíše informáciu o nesprávnych prihlasovacích údajoch. Nepomáha ani vymazanie kompletnej histórie za poslednú hodinu, vymazanie cookies Adminera a ani reštart prehliadača. Pomáha len zmena prehliadača za iný. Na druhý deň už všetko zázračne funguje (teda aspoň prvýkrát to tak dopadlo, neviem ako to dopadne teraz). Používam plnú verziu Adminera bez rozšírení (tie zatiaľ ani neplánujem v budúcnosti používať). Netuším aké údaje mám ešte poskytnúť, takže v prípade otázok rád zodpoviem.

msx:

Poprosil by som pozrieť sa na to, pretože mi to komplikuje prácu s Adminerom.

msx:

Opäť urgujem. Stalo sa mi to znova. Našťastie v druhom tabe som mal otvorenú túto url:
https://stranka.sk/adminer/?username=meno2&…&table=tabulka
Otvoril som teda prázdnu záložku a dal som tam tú istú adresu, len som zmenil prihlasovacie meno a databazu:
https://stranka.sk/adminer/?username=meno1&…&table=tabulka
Našťastie to pomohlo a Adminer pracuje. Ak ale teraz kliknem na MySQL hore v okne, aby som sa dostal na úvodnú stránku Adminera, tak prihlasovacie údaje z ľavého panela už budú vymazané. Na serveri ale zrejme ostali, keďže cez url to funguje. Môžeš sa na to pozrieť, prečo to robí?

msx:

Zaujímavé je, že som nechal vo Firefoxe otvorené záložky s Adminerom, pre obidve databázy a dnes po kliknutí na odkaz "MySQL" mi vyskočila prihlasovacia obrazovka a naľavo už krásne svietia prihlasovacie údaje. Ja som ich určite nezadal. Nechápem tomu. Vyzerá to tak, že Adminer ich občas zabúda. Takže jediným riešením je nezatvárať záložky, kým bude oprava.

ikona Jakub Vrána OpenID:

Zkuste smazat všechny cookies, třeba se to tím vyřeší.

Jeník:

Adminer je super! Včera jsem seděl u kolegy a on používal phpmyadmina. To je hrůza nechápu jak ten strašný software může někdo používat, ale přejít nechce, prý je zvyklý. No to je jeho problém. Já moc děkuju za Adminera. Bez něho bych už nechtěl pracovat.

msx:

Ja som tiež niekomu nedávno ukázal Adminera, tak som zvedavý ako to dopadne časom.

msx:

Nedalo by sa vypnúť to cachovanie? Príspevok od Jeníka sa mi zobrazil až po odoslaní môjho.

msx:

Mal by som prosbu. Pri numerických políčkach by mohol Adminer brať do úvahy aj desatinnú čiarku. Bolo by to vhodné hlavne pre štáty, kde je desatinná čiarka štandard. Som zvyknutý všade zadávať desatinnú čiarku (numerická klávesnica) a keď programujem nejaké aplikácie, tiež ich robím tak, aby ju podporovali. Adminer by ju tiež mohol podporovať. Vopred ďakujem.

ikona Jakub Vrána OpenID:

Dá by se to udělat pomocí přizpůsobení metodami selectVal() a editVal(). V Adminer Editoru by to stálo za zvážení, v Admineru to jako výchozí chování určitě dávat nebudu.

trestná smradlavice:

Poslední recenze zrovna nechválí to, že v PostgreSQL verzi 9.2 nefungoval výpis procesů.
Místo příkazu...

SELECT * FROM pg_stat_activity ORDER BY procpid;

...má od verze 9.2 zřejmě být:

SELECT * FROM pg_stat_activity ORDER BY pid;

ikona Jakub Vrána OpenID:

Ano, už je to opravené.

msx:

Mám prosbu. Pri zozname tabuliek pri hromadnom mazaní treba zaškrtnúť checkbox, ktorý naraz označí všetky tabuľky. Tento checkbox je hore a ja vždy, keď chcem označiť všetky, tak najprv zídem dole, potom si uvedomím, že chckbox je hore a potom sa vrátim späť hore, zaškrtnem ho a opäť idem dole klepnúť na Odstrániť. Nedalo by sa presunúť to zaškrtávacie políčko dole? Aj tlačítka na Odstránenie, Vyprázdnenie ap. sú dole, takže by to bolo vhodnejšie.

ikona Jakub Vrána OpenID:

Chci, aby to bylo konzistentní, a ve většině tabulek spodní řádek není, takže by to nebylo kam dát. Navíc preferuji mít jednu funkci jen na jednom místě, nevznikají pak pochybnosti, jestli to dělá přesně to samé.

msx:

A ešte jednu prosbu mám. Stránkovanie pri prezeraní tabuľky by mohlo byť aj hore. Takto musím skrolovať stále dole.

ikona Jakub Vrána OpenID:

Nahoře ještě není známý celkový počet záznamů, jehož zjištění může trvat dlouho. Co takhle použít nějakou klávesovou zkratku?

trestná smradlavice:

nešlo by na začátku dát <div id="top-pages"></div>
a po vypsání dolního stránkování spustit
<script>
document.getElementById("top-pages").innerHTML=document.getElementById("pages").innerHTML;
</script>
?

ikona Jakub Vrána OpenID:

To by šlo, ale dělat to asi nebudu.

trestná smradlavice:

Drobnost: v historii se u příkazů vypisuje čas. To kvituji pozitivně, ale historie může být týdny i měsíce stará. Nešlo by dát do bubliny datum? Díky

ikona Jakub Vrána OpenID:

Dobrý nápad, díky. Doplnil jsem to.

Michal:

Ve výpisu dat tabulky se při vyhledávání jednotlivé podmínky spojují pomocí AND. Je nějaká možnost podmínky OR než upravení SQL ?

trestná smradlavice:

Dotaz:
SELECT * FROM tabulka WHERE a=1 AND b=2 AND c=3 OR d=4;
není
SELECT * FROM tabulka WHERE a=1 AND b=2 AND (c=3 OR d=4);
ale
SELECT * FROM tabulka WHERE (a=1 AND b=2 AND c=3) OR (d=4);

Ano, sice to je věc konvence (a to nejen v SQL ale obecně řečeno v matematické logice jako takové), přesto si myslím, že  většina uživatelů by při zadávání chtěla dostat výsledek druhého dotazu a divila by se, že dostává výsledek dotazu třetího.
Pokud bys chtěl mít možnost volit si AND a OR libovolně, musela by nejspíš před a za každý podmínkový řádek přibýt možnost dát tam začátek/konec závorky.

Místo OR můžeš pro výčet hodnot použít operátor IN a pro interval > a <.   

ikona Jakub Vrána OpenID:

Dá se to obejít tak, že se jako operátor vybere nic (na posledním místě) a tam se napíše zbytek podmínky za názvem sloupce. Nic moc, ale vzhledem k tomu, že se OR moc nepoužívá, tak se s tím nic dělat nechystám.

trestná smradlavice:

Nový design -
http://uloz.to/xZngu1s/adminer-css
nechám na Jakubovi, případně na ostatních, pod jakým názvem ho prezentovat ;)

trestná smradlavice:

...protože podle mého nicku by to nebylo moc reprezentativní :-)
Popřípadě můžu udělat i to samé v jiné barvě, jestli si někdo řekne.

Michal:

Raději bez stylu než tento :-) Ne bez urážky, není to k přečtení.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.