Vyšel phpMinAdmin 1.9.1
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:
- Chyby v XHTML kódu (děkuji uživateli kozotoc)
- V exportu se nenastavuje globální proměnná max_allowed_packet (stejně její nastavení MySQL nerespektuje)
- Zohledňuje se situace, kdy uživatel nemá oprávnění SHOW DATABASES (databázi lze v tom případě zadat ručně)
- Třídění podle výsledku funkcí ve výpisu záznamů funguje i ve starších verzích MySQL
- phpMinAdmin jsem otestoval na IIS (děkuji hostingu krasl.cz)
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.
Diskuse
v6ak:
Ještě tomu chybí autoupdate...

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


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.

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.

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.

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

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.
Jakub Vrána
:
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.
Jakub Vrána
:
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 chybuWarning: 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
Jakub Vrána
:
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, ...).
Jakub Vrána
:
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…
Jakub Vrána
:
Nebylo to možné, opravil jsem to v SVN. Díky za upozornění.


Diskuse je zrušena z důvodu spamu.

