Vyšel phpMinAdmin 1.9.1

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

Do nástroje pro správu databáze MySQL phpMinAdmin jsem doplnil několik funkcí týkajících se především hromadných operací, proto jsem vydal novou verzi.

Na stránku s informací o databázi jsem přidal výpis jejích tabulek spolu s informacemi o nich. Na stejné stránce je možné provádět s tabulkami i hromadné operace. Tomuto kroku jsem se dlouho bránil, protože seznam tabulek je v navigaci dostupný na každé stránce, nakonec jsem ale uznal, že další podrobné informace (jako např. hodnota auto_increment, typ tabulky nebo počet řádek) se můžou hodit a navíc je užitečné je vidět pohromadě, takže nemusí strašit v detailu každé tabulky. Díky tomuto výpisu je navíc možné s tabulkami provádět údržbové operace (jako analyzování nebo optimalizace tabulky), které sice osobně nepoužívám, ale někdo je potřebovat může. Na stejném místě lze tabulky přesunout i do jiné databáze.

Další hromadnou operací je editace více záznamů najednou. Funguje to tak, že v hromadné editaci záznamů lze u každého sloupce zvolit, zda si má zachovat svou původní hodnotu nebo zda má dostat hodnotu novou. Bohužel aktuální hodnota sloupce nejde upravit (např. k ní něco přičíst) nebo převzít z jiného sloupce, protože mě k této funkčnosti nenapadá vhodné uživatelské rozhraní.

U každého záznamu přibyla operace klonování – to znamená vytvoření nového záznamu na základě starého. Nový záznam převezme od původního záznamu hodnoty všech sloupců (kromě sloupce auto_increment), umožní je změnit a vloží je do tabulky. I tuto operace lze provádět hromadně.

V editaci záznamu přibyla možnost aplikovat na zadanou hodnotu nějakou vestavěnou funkci. K dispozici je pouze pět funkcí, o kterých si myslím, že je možné je při editaci záznamu smysluplně použít. Pokud byste postrádali nějakou další funkci, tak dejte vědět. Zvažuji ještě přidání funkcí pro matematické operace (např. plus) a operací pro posouvání data a času.

Do výpisu záznamů jsem přidal vyhledávání pomocí NOT operátorů (např. NOT IN) a možnost vyhledávat bez omezení sloupce (stačí nezadat, v jakém sloupci chcete vyhledávat). Pokud není zadaná numerická hodnota, tak se vyhledává v nenumerických sloupcích (protože 0 = 'a'), jinak se hledá ve všech sloupcích.

Další novinky už jen stručně: V editaci uživatele se pro vstupní políčko hesla používá typ password, ve výpisu záznamů jsem zredukoval počet tlačítek a změnu jazyka jsem předělal na výběrový seznam (protože řada odkazů už se do navigace v některých jazykových verzích nevešla).

Opravil jsem také několik chyb:

A co znamená ta setina v čísle verze? Před vydáním jsem zapomněl obeslat překladatele, takže 1.9.0 vyšla s aktuální verzí pouze anglického a českého překladu.

Jakub Vrána, Adminer, 31.10.2008, diskuse: 20 (nové: 0)

Diskuse

ikona v6ak:

Ještě tomu chybí autoupdate...

ikona Jakub Vrána OpenID:

Vážně jsem o něm uvažoval, ale nemám moc rád, když aplikace přistupují na Internet aniž by musely.

ikona v6ak:

Stačilo by třeba hned po přihlášení nabídnout update. Byl bych rád, kdyby spojení s aktualizačním serverem bylo zajištěno polymorfním mechanismem (kvůli proxy apod.) a kdyby to šlo nastavit v externím souboru, který by nemusel existovat. Taky by bylo dobré, kdyby to šlo zakázat.

ikona v6ak:

... nebo by to ve výchozím stavu nešlo zakázat, ale povolit.

Pak bych změnil jednosouborovou koncepci PhpMinAdmina na 1-2 souborovou: Jeden soubor by byl povinný a to by byl samotný PhpMinAdmin. Druhý soubor by byl nepovinný a bylo by to jeho nastavení. Pokud by neexistoval, byly by použity výchozí hodnoty.

ikona Ladislav Prskavec:

Díky za nové funkce, teď už mi to phpmyadmina plně nahradí. Jen se mi nedaří export tabulek s daty, to dřív fungovalo. Žádná chyba se neobjeví jen prázdná stránka.

ikona Ladislav Prskavec:

Problém se vyskytuje jen u exportu pod tabulkou, nějak se nezmění url nahoře jak by mělo.

ikona Ladislav Prskavec:

tak moje chyba nic jsem nezatrhnul a tak vysledek byl prazdny, predpokladal jsem ze udela vsechno :-(

Gimli2:

Narazil jsem na drobny problem, jehoz odstraneni ale bude asi znamenat vetsi zasah:

Pokud pri prohlizeni databaze INFORMATION_SCHEMA a konkretne pohledu ROUTINES kliknu na editaci nejake stored procedury/funkce, ktera je delsi nez 8kB, pokus o editaci selze.
To proto, ze se cele telo procedury cpe encodene do URL, kam se dle specifikace tusim muze vejit max prave tech 8kB.
Testovano na WinXP+SP3 v Opere 9.60 - posledni verze phpminadmina 1.9.1.

ikona Jakub Vrána OpenID:

Ty pohledy v information_schema by především asi vůbec neměly být editovatelné.

Gimli2:

Tot otazka. Obcas muze byt uzitecne videt napriklad datum posledni upravy dane SP. A kdyz si pak vzpomenu, ze ji chci upravit, tak nemusim preklikavat do dane DB, ale dam primo editovat.
Ale je to asi tak minoritni pripad pouziti, ze si s tim nema smysl delat tezkou hlavu.
Spis jestli neni pouzito stejne predani velkeho mnozstvi dat pres URL i jinde.

ikona Jakub Vrána OpenID:

Ono to technicky není možné – pokud mi něco neuniká, tak MySQL nedovoluje pohledy v information_schema editovat. Muselo by to být namapované na editaci procedury a to už mi přijde jako moc velká magie.

Gimli2:

Jasne, samotny pohled nezedituju. Ale jim vypsane polozky jdou jen mazat a ne uz editovat. To namapovani asi za to nestoji. ;-)

Karel:

Včera hodinu před půlnocí, jistý nejmenovaný hosting jménem Flyweb doplnil svoje služby právě o phpMinAdmina - https://klient.flyweb.cz/mysql/phpminadmin/

Pavel Dvořák:

hazi me to chybu

Warning: array_filter(): The first argument should be an array in /home/web@xxxx.cz/mysql.php on line 551

Fatal error: Unsupported operand types in /home/web@xxx.cz/mysql.php on line 551

ikona Jakub Vrána OpenID:

Díky za upozornění, docházelo k tomu nejspíš u prázdných databází. Opravil jsem to v SVN.

václav mařík:

Díky za skvělý software, zdá se mi lepší než konkurent.

Co bych doplnil (možná mi ale ještě něco uniká), je možnost při exportu nastavit co exportovat pro všechny tabulky naráz (klikám u 120 tabulek na struktura-přeskočit).

A u okna pro SQL příkazy (fakt se mi líbí zpracování sql příkazů a chybová hlášení) volbu "po první chybě nepokračuj dál" a skvělé by bylo také zpracování pouze označené části SQL skriptu. Píšu nějaké selecty, postupně zjišťuji proč něco nejde a hodilo by se, pokud by se dal odeslat pouze 1 select z několika, přičemž obsah textarea by samozřejmě zůstal nezměněn.

Poslední myšlenka je rozšíření o další DB systémy (MSSQL, Oracle, Firebird, ...).

ikona Jakub Vrána OpenID:

Stačí kliknout na záhlaví sloupce. Asi by to chtělo nějak zvýraznit.

"Po první chybě nepokračuj dál" je dobré rozšíření. Spuštění označeného - to jako že by se JavaScriptem detekovalo, co je označené? To asi dělat nebudu.

Rozšíření na další DB zvažuji, hlavní problém je ten, že to nepotřebuji.

pojízdná kočka:

Prosíím dotaz: jak se přes phpMinAdmin nastaví DEFAULT ''?

pojízdná kočka:

…coby výchozí hodnota sloupce v tabulce. Podle toho, co phpMinAdmin udělal, provedl všemi sloupci, u nichž nebyla zadána hodnota, DROP DEFAULT…

ikona Jakub Vrána OpenID:

Nebylo to možné, opravil jsem to v SVN. Díky za upozornění.

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.