PHP triky - phpMinAdmin

phpMinAdmin

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

Při administraci databáze nejraději pracuji z příkazové řádky, ne vždy to je ale možné. Důvodem je, že málokterý hosting nabízí přístup k příkazové řádce nebo vzdálené připojení k MySQL databázi. V tom případě přichází ke slovu phpMyAdmin. Tuto aplikaci považuji za poměrně zdařilou, má však jednu velikou nevýhodu – aktuální verze má téměř 8 MB ve více než 600 souborech. Nahrávat takový moloch na server jen kvůli tomu, abych se podíval na strukturu jedné tabulky nebo vypsal nějaká data, je ztráta času, proto si často raději napíšu jednorázový skriptík. Kdysi jsem dokonce začal psát skript, který stáhne aktuální verzi phpMyAdmina a rozbalí ji do aktuálního adresáře. Kvůli problémům se stahováním vzdálených souborů, právy zápisu a nedostupností komprimačních extenzí na většině hostingů jsem ho ale nikdy nedokončil.

Chtělo by to aplikaci se všemi základními správcovskými funkcemi, která by se vešla do jednoho nepříliš velkého souboru. A právě takovou aplikaci vám v jubilejním 300. článku na tomto blogu představuji – phpMinAdmin tyto požadavky splňuje a disponuje těmito funkcemi:

Přestože se vše vejde do jednoho souboru, který velikostí nepřesahuje 100 KB, funkcí je myslím dostatek. Nevšiml jsem si třeba toho, že by phpMyAdmin podporoval práci s uloženými procedurami a spouštěmi, editaci pohledů nebo vícesloupcové cizí klíče.

Nešetřil jsem ani na infrastruktuře rozhraní. Překlady do jednotlivých jazykových verzí jsou podporované včetně různých hlášek v závislosti na počtu (1 záznam, 2 záznamy, 5 záznamů), náležitá pozornost je věnována bezpečnosti (nejdůležitější u takového rozhraní je obrana proti XSS, Session Fixation a CSRF).

phpMinAdmin pracuje s MySQL 4.1 a 5.0 přes PHP rozhraní MySQLi, MySQL nebo PDO v PHP 4.3 a vyšším nebo PHP 5. Pro svou práci potřebuje session proměnné. K dispozici je anglická, česká, slovenská, holandská, španělská a německá jazyková verze a rozhraní je zdarma pro komerční i nekomerční použití.

phpMinAdmin je připraven k nasazení pro běžné používání, stáhnout nebo vyzkoušet ho můžete na domácí stránce projektu. Uvítám jakoukoliv zpětnou vazbu, námět na další funkce (i když je chci přidávat jen s vidinou reálného využití), případně nahlášení chyb. Pokud byste mi chtěli s něčím pomoci, uvítám korekturu anglických jazykových hlášek, design domovské stránky nebo přímo rozhraní (i když ten by měl zůstat minimalistický).

Jakub Vrána, Adminer, 25.7.2007, diskuse: 102 (nové: 0)

Diskuse

ikona Dan:

Perfektní, díky. Hned jsem si stáhnul a vyzkoušel a určitě jej budu používat v případech, kdy PHPMyAdmin není dostupný a nechce se mi jej dlouho uploadovat. Jediná škoda, že nepodporuje i MySQL 4.0:-(

Langoš:

Člověče to vypadá fakt dobře! Ještě to pořádně vyzkouším doma, ale přesně takhle to mám rád - jednoduše, ryche, přehledně ;-)
Díky díky !
P.S. Asi si k tomu nějaký css udělám, tak jestli to bude vypadat, tak pošlu ;-)

ikona Medhi:

Ahoj, je to naprosto skvělá věc a je fajn že to dáváš zdarma.

Měl bych tu pár námětů: U tabulky bych chtěl vidět alespoň počet záznamů v ní a mohlo by se zobrazovat i číslo posledního auto_incrementu. Potom při výpisu záznamů v tabulce udělat jinak procházení, protože když jich tam mám statisíce, začne se dole vypisovat hrozně moc odkazů a načítání stránky to pořádně vytíží a prodlouží. A snad poslední věc - výpis záznamů z tabulky kdyby šel podle pořadí nějakého sloupce. Zde by šel překonat phpMyAdmin, protože u něj si v prvním kliknutí nelze vybrat jestli ASC nebo DESC. Přitom to lze vyřešit dvěma šipičkami u každého záhlaví a je to.

Ještě jednou díky za tu práci.

ikona Jakub Vrána OpenID:

Číslo posledního auto_incrementu se zobrazuje v editaci tabulky, kde jde rovnou i změnit. Nejde o tak důležitou hodnotu, aby ji bylo potřeba propagovat i jinde.

O zveřejnění počtu záznamů v tabulce jsem už přemýšlel, ale ještě nevím, kde by bylo nejvhodnější místo. Asi to dám do TITLE odkazu „vypsat“, aby to bylo všechno pěkně pohromadě a zároveň to moc nepřekáželo.

Stránkování na základě tvé rady asi předělám tak, že tam bude jen odkaz na první stránku, poslední a +-2 od aktuální.

Řazení se nedělá přes záhlaví sloupců, jak je to obvyklé, ale přes zvláštní box ve vyhledávání. Díky tomu je možné řadit záznamy nejenom sestupně, ale hlavně podle více sloupců najednou, což klikání na záhlaví neumožňuje.

Díky za konstruktivní připomínky.

ikona Jakub Vrána OpenID:

Počet záznamů jsem dal do TITLE odkazů „vypsat“ v seznamu tabulek, stránkování jsem smrsknul (zatím v Subversion).

ikona Jakub Vrána OpenID:

Počet záznamů ve výsledku jsem nechal zobrazovat u stránkování.

Řazení jsem umožnil i kliknutím na záhlaví sloupce.

sway:

Parádní, díky za "objev." phpMyAdmin je na některé jednoduché úkony moc komplikovaný, tohle se hodí...

Honza:

Není to špatné, líbí se mi ta rychlost, proti phpmyadminu je to fakt příjemné. Schéma databáze vypadá dobře :) Chybí mi ale vlastnosti u prvků time/timestamp jako CURRENT_TIMESTAMP a ON_UPDATE_... které dost používám, a asi bych časem narazil na další věci co mi chybí a musí se řešit příkazem. Keep up the good work :)

ikona Jakub Vrána OpenID:

Nastavování hodnot pro timestamp jsem doplnil (do editace výchozích hodnot v Subversion).

ikona Arcao:

Super vec! Jen par kosmetickych veci mi tam chybi. Vypsani verze serveru MySQL + pres jakou datovou vrstvu (funkce) se prihlasuje (mysql/mysqli/PDO) a jeste jestli by bylo mozne provadet exporty DB bez SQL prikazu zakladani DB a jeho volby (myslim ze castejsi pripad je import DB do jiz existujici DB nez do neexistujici).

ikona Jakub Vrána OpenID:

Především informaci o použité extenzi jsem chtěl někam dát, ale nenapadlo mě vhodné místo. (A možná i výběr, která extenze se má použít, ale to spíš ne, protože MySQLi má víc možností než MySQL a to zase více než PDO, takže jediná motivace pro použití jiné extenze než nejvyšší možné by byla nefunkčnost té lepší). Přemýšlel jsem o přihlašovacím formuláři, tam ale zase nebude k dispozici verze MySQL. Takže se ptám – kam s tím?

CREATE DATABASE a USE jsem z exportu jedné databáze vyhodil.

ikona Jakub Vrána OpenID:

Informaci o MySQL verzi i použité PHP extenzi jsem dal na stránku bez vybrané databáze.

ikona tiso:

Tak toto sa celkom podarilo, veľmi užitočná vec. Ja som si spravil skript iba na výpis dát z konkrétnej databázy (prihlásenie usera, zoznam tabuliek s počtom i názvami stĺpcov, možnosť jej zmazania, výpis tabuľky, radenie podľa niektorého zo stĺpcov asc/desc, editácia/pridanie/zmazanie záznamu). Finta s favicon priamo v PHP mi teda nenapadla...

ikona Jakub Vrána OpenID:

Já jsem to měl původně řešené přes data: protokol, to ale nefunguje v IE.

ikona finc:

Je to dobre. I kdyz phpMyAdmina nepouzivam, tak male zalezitosti se jiste hodi.
Na phpMyAdminovi jsou dobre ony frames, kde vlevo mam seznam tabulek a vpravo potom s pracuji. Duvodem si myslim, ze je i to, ze pri vetsim poctu tabulek neni potreba stale nacitat tyto seznamy.
Asi by se dalo najit spousty veci, ktere zde nejsou, nebo jsou jinak, ale pro ucely, o kterych pises, si myslim, ze nema moc cenu do toho sahat. Pokud nekdo pise views, stored procedures, triggers, atd. tak jiste pouziva nejaky desktopovy vyvojovy nastroj. Do teto oblasti bych asi vubec nezasahoval.
Docela cucim, ze jsi to vsechno nacpal do jedineho souboru, pro distribuci je to dobre, pro programatora vetsinou nocni mura :)

Jinak co se tyce phpMyAdmina a jeho pouzivani. S phpMyAdminem jsem skoncil v dobe, kdy se ma databaze rozrostla do vetsich rozmeru (kdysi cca 100-150 tabulek), v te chvili byl takovy nastroj proste nepouzitelny. Dnes mam MySQL Query Browser, popripade nejaky ten plugin do Eclipse. Osobne jsem si take zkousel psat nejaky ten maly nastroj na spravu DB, ale prislo mi, ze dane dotazy na zjisteni metadat o dane databazi jsou priserne pomale. Nevim jestli je to spatnou optimalizaci MySQL nebo mnou :)

Jeste bych chtel pogratulovat k tomu 300temu clanku, je to vazne velka porce, navic kvalitnich clanku.

ikona Jakub Vrána OpenID:

O rámech jsem taky přemýšlel, ale nevýhody podle mě převažují – levý rám je potřeba čas od času refreshovat, s čímž je spousta práce, ale hlavně se nedá stránka s rámy uložit do bookmarků nebo na ni odkazovat. Seznam databází, který se na SF.net (a samozřejmě asi i jinde) načítá hodně dlouho, alespoň cachuji – i s tím je spojeno dost kódu, který považuji za nutné zlo a ne za elegantní řešení.

Já jsem od původního záměru jednoduchého skriptu pokročil k funkčně plně vybavené verzi. Komponenty jsou docela malé (kolem 3 KB) a jejich přítomnost by mohla někoho nalákat k používání phpMinAdmina i pro plnohodnotný návrh databáze (když se tak používá i v této oblasti funkčně chudší phpMyAdmin, tak proč ne phpMinAdmin).

Vývoj v jednom souboru samozřejmě neprobíhá, stáhni si zdrojové kódy... Mám napsaný článek, který to popisuje podrobněji.

Stejně jako se cachuje seznam databází by se dal cachovat i seznam tabulek, ale ty se získávají celkem rychle. Problém je samozřejmě s přenášením výpisu tabulek pořád dokola – to by vyřešily buď rámy nebo kompletní předělání rozhraní na AJAXovou variantu, ale ani jednou cestou phpMinAdmin nepošlu.

ivan_d:

'ale hlavně se nedá stránka s rámy uložit do bookmarků nebo na ni odkazovat' - ano, pro toto velmi často phpmyadmin proklínám.

ikona tiso:

Ono to pôvodne bolo vo viacerých súboroch, toto je automaticky poskladaný výsledok, ak som to správne pochopil... A pre mňa ďalší nápad na premýšľanie...

ikona RAY:

Na počet souborů (cca 250) je poměrně nenáročný TurboDbAdmin http://www.turboajax.com/products/turbodbadmin/ ale na phpMinAdmin samozřejmě nemá ani náhodou :)

Red_Devil:

Aplikace je to vynikajici, prestavam pouzivat phpMyAdmin.
Napadlo me jedno minivylepseni. Co takhle zobrazovat, jaka znakova sada se pouziva u jednotlivych textovych sloupcu, popripadne i porovnani v ramci cele tabulky?

ikona Jakub Vrána OpenID:

Zobrazuje se to v editaci tabulky. Opět to není tak zásadní informace, aby musela být i v náhledu tabulky.

paranoiq:

vypadá to moc dobře. hlavně to vyhledávání a řazení je vyřešeno rozumě. jen mi tam chybí třeba operátor IN.
phpMyAdmin je opravdu moloch a jeho občasné bugy a lenost mě štvou. zvlášť v poslední době mi připadá, že se vývoj točí spíš kolem malovaných ikonek než kolem funkčnosti. věřím že vývoj phpMinAdmina se touhle cestou nevydá.

ikona Jakub Vrána OpenID:

Operátor IN jsem přidal (zatím v Subversion).

Těžko říct, kudy se bude ubírat vývoj, já jsem všechny své požadavky víceméně už zapracoval.

error414:

Me se to take moc libi ale dulezita vec pro me chybi.

Aby se vypisoval hlavni dotaz na Db. Napriklad pokud pouziji filter pri vyberu z tabulky. Tak bych rad videl dotaz.

Jak se tak divam do kodu tak to ze je to v jednom souboru si sebou vzalo krutou dan. (write only).

Jinak ten frame v phpmyadminu neskonale toci.

ikona Jakub Vrána OpenID:

Výpis dotazu zvážím, ale moc se mi ho tam dávat nechce nebo jen volitelně.

Jak správně pochopil tiso, tak jeden soubor je jen výsledkem kompilace. Můžeš si stáhnout i zdrojové kódy.

ikona Jakub Vrána OpenID:

Výpis dotazu jsem přidal spolu s možností jeho editace.

ikona v6ak:

Stáhl jsem si 1.7.0 a žádný SQL příkaz tam nevidím ani při výpisu, ani při úpravě tabulky. Je to škoda, protože pak je PhpMinAdmin nepoužitelný, pokud chci synchronizovat strukturu.

ikona Jakub Vrána OpenID:

Je to zatím jen v SVN. Čemu říkáš „synchronizovat strukturu“? Možná by ti mohl pomoci nový export.

ikona v6ak:

To bych musel exportovat data a pak zase importovat. To není ono. Prostě mi jde o výstup v podobě nějakého ALTER TABLE.

ikona Jakub Vrána OpenID:

Aha, tak přesně tenhle dotaz se ve verzi 1.8.0 bude zobrazovat. V demu už je to vidět: http://phpminadmin.sourceforge.net/phpMinAdmin.php?username=.

ikona v6ak:

Tak to je skvělý. Těším se na 1.8.0. Pak asi zapomenu na PhpMyAdmina. Ještě by mohlo jít nastavit automatické rozbalování, ale není to nutné.

Pavel:

Perfektní hnedle jsem alespoň kliknul na reklamu ať nějak ocením obrovské množství práce co tohle muselo dat.

ikona LLook:

Komu tím prospěješ?

Že se mnoho lidí chová takto, to inzerentům snižuje konverzní poměr a výhodnost investice do této formy reklamy. Čím více lidí bude takto "bohatým brát a chudým děkovat", tím méně výhodné bude inzerovat v Adsense a tím méně investic do toho poteče. V konečném důsledku pak prodělávají všichni - reklamní systém, inzerent i poskytovatel prostoru.

emilk:

a neni misto uploadu by maleho admina lepsi sshcko s jednim tunelem na mysql port?

priste si ten mysql port pritahnout na lokal a pak uz se na nem vyradit?

ikona Jakub Vrána OpenID:

Pokud to je na hostingu povolené, tak to je samozřejmě taky schůdná cesta.

ikona Arcao:

Na to existuje řešení ve formě MySQL-PHP tunelu. Ten používá třeba Navicat MySQL od PremiumSoftu. Jen škoda, že je placený.

MySQL-PHP tunel používá i MySQL-Front.

ikona finc:

Mate nejake informace o tom PHP-MySQL tunelu? Nikdy jsem o tomto neslysel.
Jinak, ja se domnivam, ze bez primeho povoleni pripojit se k MySQL z jine IP adresy to nepujde.
Jinak, ktery webhosting dodava ssh?

error414:

ten tunel je prave obejiti toho omezeni s IP. Tunel je realizovan PHP souborem co je na ftp a zprostredkovava komunikaci

klient <==> tunel (php soubor na ftp-pro neho je mysql na localhostu) <==> mysql

Nekolikrat jsem to pouzil a je to pouzitelne.

Luk.yer:

souhlasim, PHP tunel pouzivam bezne a nepocituji ani zadne vetsi lagy. Na FTPko se nahraje ntunnel_mysql.php a v navicatu se pripojit na http tunel ... Mimochodem existuje i lite verze (free) navicatu, je to paradni software

ikona Balud:

Tak tomu říkám práce gurua. Jsem naprostu uchvácen. Díky

Domo:

:( nějak mi to nejde ze sourceforge stáhnout. vždy mi to nabídne prázdný soubor *.php a když chci zdrojové kódy, tak je  to zase prádnej *.zip archiv.

ikona Jakub Vrána OpenID:

Možná se to zatím nedostalo na všechna zrcadla. Zkus třeba Duesseldorf, Germany.

Honza Odvárko:

SQL command jen s rozhraním MySQL.. to muselo dát práce než byl středník středníkem tam kde má. Bravo.

ikona Jirka:

Já hlavně oceňuju export. Protože kdo někdy zkoušel export u phpMyAdmin mi jistě dá zapravdu, že moc příjemné to není.

Jiri Lenert:

Export by mohl byt jeste lepsi, pokud by exportoval i dany vyber (i do CSV).

Diky.

ikona Jakub Vrána OpenID:

CSV export neplánuji. Co máš na mysli „daným výběrem“? Export dat momentálně zobrazených ve výpise (po vyhledávání)?

Jiri Lenert:

Ano, myslel jsem export dat po vyberu.

tomh:

Zcela OT - češtinářské:

Mám rád češtinu tam kde se hodí, ale myslíte si že je vhodné překládat "trigger" na "spoušť"? Mám pocit že to je dost otrocký překlad - nevím jak ve vašem okolí, ale já jsem neslyšel nikoho kdo by triggeru říkal spoušť.

Pravda viděl jsem to napsané v nějakých starých učebních textech, ale podle mě je to v dnešní době dost divné označení. Aspoň pro mě, u toho slova jsem se zarazil a musel chvilku přemýšlet o co jde.

ikona Jakub Vrána OpenID:

V odborné literatuře je to docela běžné. Pravda je, že když jsem dělal odbornou korekturu knihy o MySQL, tak jsem si dal tu práci a všech asi 200 výskytů slova spoušť (v různých pádech) jsem nahradil za trigger. Pak jsem se s tím slovem ale setkal i jinde, tak jsem tady použil zase spoušť. Ještě to zvážím, protože to je navíc mnohoznačné slovo (něco spouští nebo pohroma)...

ikona Jakub:

Už Vám někdo řekl, že jste geniální ? :)

Martin:

Mimochodom, ked si stiahnes phpMyAdmin len v anglickej verzii (http://prdownloads.sourceforge.net/phpmyadmin/…-english.7z) tak po rozbaleni bude mat 'len' 4MB a nejakych 440 suborov ;-).

MicTech:

super zalezitost, jsem prilis linej psat administrace ke svym webum a phpmyadmin je na pomaly lince hodne spatne reseni :}

Ladis:

Opravdu ultimátní nástroj, díky moc. Co se týká překladu, přimlouval bych se za "trigger", věta "Spoušť byla vytvořena" působí hrozivě.

ikona Jakub Vrána OpenID:

OK, změnil jsem to na trigger.

ikona JiFF:

Sakra Jakube!!! =D Vy jste fakt borec =) Tohle přidávám na seznam programů, za které jsem ochoten zaplatit... (protože vidím práci uvažujícího člověka (ne "programátora").

ikona Jakub Vrána OpenID:

Můj PayPal účet je vám plně k dispozici :-).

Fox Axe:

Používám už nějaký ten čas a mám s tím jen ty nejlepší zkušenosti.

ikona Marty:

Těším se na CSS k phpMinAdminovi, pro zachování "minimalističnosti" by mohlo být CSS řešeno jako interní styl v PHP souboru :-)
phpMinAdmin mě přiměl k dopsání adminEnginu, řešení administrace jednotlivých databázových tabulek: http://www.martinvseticka.eu/index.php?se…&page=132

ikona Jakub Vrána OpenID:

CSS je pochopitelně už teď interní.

Podívej se na http://php.vrana.cz/vytvoreni-administracniho-rozhrani-v-php.php, mohlo by tě to myslím zajímat.

Gringo:

Při vkládání záznamů bych tlačítko "Uložit a vložit" přepsal na "Uložit a vložit další". Chvíli jsem přemýšlel, co to vlastně má dělat.

ikona Jakub Vrána OpenID:

OK. Sice tam „další“ nebylo záměrně (protože tlačítko se zobrazuje i při modifikaci záznamu, takže nejde o vložení „dalšího“ záznamu), ale v rámci intuitivnosti používání rozhraní jsem to tam doplnil.

Petr Fidler:

Prográmek může být velmi užitečný, zatím vypadá velmi dobře. Narazil jsem na jedinou drobnost - V databázi máme cca 50 tabulek různě provázaných, schema databáze je potom nepřehledné, čáry jsou velmi husté a nedá se poznat která kam vede. Funguje posunování tabulek, ale linky zůstanou na místě.

ikona Jakub Vrána OpenID:

V Subversion už je verze, která čáry zobrazí správně alespoň při načtení ze serveru (pozice tabulek se ukládá do cookie). Na přesouvání čar JavaScriptem ještě zapracuji, ale moc se na to netěším...

ikona HamStet:

Zdravím!

Ten program jsem zkoušel, je to fajn, bohužel můj hoster používá MySQL verze 4.0. a tak to při pokusu zobrazit pohled vypíše:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in myminadmin.php on line 682

Na víc ve výpisu tabulky (která nemá texty kódovány v UTF-8) je zmršená čeština. Taky funkce Export vypíše strukturu tabulek (resp. příkazy CREATE, které by takovou tabulku vytvořily), ne jejich obsah. Je to úmysl nebo chyba v souvislosti s verzí?

Pěkně prosím, dá se (zhruba) vypsat, které vlastnosti MySQL 4.1 (a výše) jsou potřeba aby to šlapalo, pokusil bych se to nějak obejít. Hostera ke změně verze asi nepřesvědčím :(

J.H.

ikona Jakub Vrána OpenID:

Problém s verzí 4.0 je v tom, že nepodporuje znakové sady a ani se nedá poznat, v jakém kódování data jsou. Takže by bylo potřeba uživateli dát na výběr, v jakém kódování jsou data uložena, a navíc provádět jejich překódování v PHP (takže se spoléhat na přítomnost iconv nebo mbstring).

Podporu verze 4.0 neplánuji.

RiZe:

phpMinAdmin vypadá fakt skvěle, velký phpMyAdmin se na hostingu kolikrát načítá hrozně dlouho, tohle bych ale viděl na pěknou "fofrovku".

DynDyn:

Super práce! Už jsem si zvykl používat phpMinAdmin pro rychlou práci db. Možná jsem jen našel malý problém.

Mám tabulku:

idneceho   si
1          2
2          2
3          2
4          3
5          3
6          3

Dám-li vyhledat záznamy kde si=2 a pak zvolím "upravit" u záznamu idneceho=3, objevi se mi editace zaznamu idneceho=2. Dám-li vyhledat záznam kde idneceho=3 a zvolím-li upravit u tohoto záznamu, zobrazí se mi místo editace formulář pro vložení nového záznamu. Podivné.

Kdyby bylo třeba další info, doplním...

ikona Jakub Vrána OpenID:

Byl to problém verze 1.3.0. Ve verzi 1.3.1 už je to opravené.

Hever:

Tento počin bude jistě do historie php programování zapsaný nesmazatelným písmem...

jar:

Díky za program, vypadá úžasně. Jedna chyba, na kterou jsem narazil při pokusu o vložení nového záznamu do interprets:
"Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp/persistent/phpminadmin_ahtuni36) in /home/groups/p/ph/phpminadmin/htdocs/prepend.inc.php on line 2"
Ale na druhý pokus už to proběhlo normálně.

ikona Jakub Vrána OpenID:

Je to dáno bohužel nepříliš stabilním hostingem na SourceForge.net. Plánuji demo rozběhnout i na nějakém českém free-hostingu, bohužel komfort vytváření libovolného počtu databází žádný z nich pokud vím nenabízí.

Red_Devil:

A co treba www.otoman.cz ?

ikona Jakub Vrána OpenID:

Mluvil jsem o free-hostingu.

Michal Šatal:

nemohlo by ve strukture tabulky byt rovnou videt typ tabulky (innodb a mysql)? V jednom projektu jsou tabulky napul, a blbe se v tom trochu orientuje, co s cim souvisi? Jinak parada a moc diky!

ikona Jakub Vrána OpenID:

Je to vidět v editaci struktury tabulky. Přidal jsem to také do title="" v navigaci.

Dundee:

Wow, fakt parádní věc. O dost jednodušší a rychlejší než PhpMyAdmin. Určitě budu používat.

Crempa:

Nalezl jsem chybu, nelze mazat parametry u vlozenych funkci, sice se to tvari ze dojde ke smazani parametru ale pouze se smaze jeho nazev (vyzkouseno na verzi 1.3.0)

ikona Jakub Vrána OpenID:

Díky za upozornění, opravil jsem to v SVN.

Crempa:

Diky,
sice jsem myslel procedury, ale i tak jsi to asi koukam nasel.. :-)

Visitor:

Super vec. Ted se mi to hodilo pro pripad kdy na serverech pipni.cz je phpMyAdmin skoro nepouzitelny kvuli mnozstvi serveru a nemomaha mi ani u nich na foru uvadeny tuning.

Ale na jednu vec jsem narazil. Na stejnojmenem serveru vytvareji usery pro databaze ve stylu: "nejake_jmeno.nejaka_domena.cz" a u vas je omezeni pro login na 16 znaku. Samozrejme jsem si to poupravil, ale neni to omezeni zbytecne uz od zacatku?

ikona Jakub Vrána OpenID:

To je zvláštní, protože maximální délka uživatelského jména je podle dokumentace 16 znaků. I sloupec mysql.user.User, kam se uživatelská jména ukládají, je char(16). Zkuste schválně zadat jen prvních 16 znaků, jestli se přihlášení podaří.

Visitor:

Prihlaseni se nepovedlo. "Neplatné přihlašovací údaje."

Behem pouzivani jsem narazil na dalsi veci:

- pri prihlaseni dochazi ke stejnemu lagu jako v pripade phpMyAdminu, po prihlaseni je ale prace mnohem sviznejsi.

- kdyz zadam chybny SQL prikaz a MySQL mi vrati chybu tak je z ni rozsypany caj. "Chyba v dotazu: Va -B e syntaxe je n jak  divn  bl -B zko 'PDATE c_kategorie SET name = "neco" WHERE id = 1' na   dku 1"

- pri zadavani novych zaznamu mi tam chybi u datumovych attributu moznost zadat NOW()... jako tomu je v phpMyAdminu. Ale to je nejspise cena za jednoduchost.

- u exportu mi chybi moznost si rict co chci exportovat pripadne export do souboru. Pri X MB databazi ten export do formu neni moc OK :(

- jak tam resite autologout? pri praci se musim dost casto znovuprihlasovat jelikoz me program sam odhlasi (u phpMyAdminu tento problem nemam)

Jinak moc super pocin a zacinam si zvykat ;-)

ikona Jakub Vrána OpenID:

Asi si to tedy ohackovali. Limit jsem každopádně z přihlašování odstranil.

Lag způsobuje příkaz SHOW DATABASES. phpMinAdmin jeho výsledek cachuje.

S tím toho asi moc neudělám. Jazyk a kódování chybové hlášky se řídí nastavením locales a na překódovacích funkcích (např. iconv) nechci mít závislost.

Možnost zadat výsledek funkcí zvážím, zatím to ale dělat nebudu.

Exportovat lze buď všechny databáze, jednu databázi nebo jednu tabulku. Mám požadavek na export pouze vyselectovaných dat. Export do souboru řeším pravým kliknutím na odkaz pro export a příkazem Uložit cíl jako.

Autologout se neřeší. Odhlašování bude mít na svědomí session garbage collector PHP.

Díky za zpětnou vazbu i za chválu.

Visitor:

Tak tedy jeste jednou zpetne navazu :)

- ad. lag -> nemohla by tam byt option moznost si rucne napsat kterou databazi chci pouzit a necekat na show databases? Pripadne mit nejaky option konfiguracni soubor na jmeno databaze, stroj ke kteremu se pripojuji, ...? Je to trochu navic nez je myslenka jednoho souboru ale tak pokud to nekdo bude chtit pouzivat staleji tak by to bylo fajn.

- ad. autologout -> jak tedy je to reseno v phpMyAdminu ze on se neodlogovava?

ikona Jakub Vrána OpenID:

Dá se to vyřešit např. prepend souborem a ručním nacachováním seznamu databází - viz http://php.vrana.cz/phpminadmin-demo.php.

phpMyAdmin používá několik způsobů přihlašování. Nevím, o kterém z nich mluvíš.

Visitor:

popravde ja taky nevim. jestli to pomuze tak posilam toto z nastaveni:

$cfg['Servers'][$i]['auth_type'] = 'http';

Jinak vsechny odpovedi registruji a jak se k tomu dostanu tak vsechno proverim :). Dik a ahoj...

ikona Jakub Vrána OpenID:

HTTP autentizace je uložená u klienta a prohlížeč ji posílá při každém požadavku znovu. Proto nevyprší.

Visitor:

Jeste jeden poznatek z praxe.
Pokud tam napisu nejaky delsi SQL prikaz tak se po provedeni necha na jednom radku a pak je stranka velmi siroka. Mozna by ho to chtelo zalamovat.

Dalsi vec je razeni odkazu na zobrazeni struktury tabulky a jejiho vypisu. Logicky mi prijde opacny. Z leva bych cekal "strukturu" a "vypsani" ale je to naopak :)

BTW: nechces na strankach projektu udelat nejake forum nebo BUG report? at to tu nespamuj(i)/(em). :o)

ikona Jakub Vrána OpenID:

U SQL příkazu považuji za klíčové, aby zůstaly zachované konce řádek a mezery. Proto jsem ho uzavřel jednoduše do <pre>. Bohužel přidání stylu white-space: pre-wrap této značce žádoucí zalomení nezpůsobí, takže moc nevím, co s tím.

Vypsání je vlevo proto, že je u všech tabulek stejně dlouhé. Taky to takhle tvoří větu. A taky to má stejně phpMyAdmin, i když ten to má schované do ikony, takže o tom spousta lidí ani neví.

Oboje je na stránkách projektu: http://sourceforge.net/projects/phpminadmin/

Tom:

Jak se připojím na databázi, která běží na jiném portu než 3306? Zkoušel jsem dát za název serveru :3307 ,ale to nefunguje. Můžete mi prosím poradit. Díky.

ikona Jakub Vrána OpenID:

Žádná standardní možnost předání portu neexistovala, u výchozí extenze MySQLi to nešlo nijak. Přidal jsem možnost zadat port do samostatného políčka při přihlašování do SVN verze.

Visitor:

Tak zase ja...
Jen maly postreh takze to ma nejakou minority prioritu.

Kdyz upravuji nejaky zaznam tak pri navratu (po ulozeni) se mi vypis vraci na stranku cislo 1. Pokud mam tech stranek 100 tak je obtezujici se porad proklikavat dopredu.

ikona Jakub Vrána OpenID:

Tento stav se opravdu neudržuje, stejně jako například vyhledávání a třídění.

ikona Gioel:

ja som si tiez vsimol ze tam je prepinanie po 2, medzi strankami ale zdalo sa mi v pohode zmenit stranku aj pomocou url - &page=4

ikona Gioel:

normalne som z toho prekvapeny.. zda sa mi to super.. hlavne som prekvapeny rychlostou ako sa to zobrazuje a pracuje.. urcite budem pouzivat..

littleoak:

Parada! Vyborna prace! Pouzivam na pipni.cz a frci jako blazen. Opet to oddalilo vytvoreni administrace mych jednoduchych stranek:). Diky moc.

Thejesh GN:

Thanks for the project. I blogged about this project
http://thejeshgn.com/2008/07/18/coffee-project-…-phpminadmin/

Petr 'PePa' Pavel:

Omlouvám se za "me too" post, ale teď mi phpMinAdmin hodně pomohl. Hosting, na kterém pracuji, nemá phpMyAdmin a instalovat ho jen pro pár dotazů se mi nechtělo.

Mimochodem, moc se mi líbí, jak řešíte favicon! A zvýrazňování syntaxe přes externí Jush. Fakt wicked.

Díky PePa

Radovan:

phpminadmin je super.

Jedina vyhrada ktoru zatial mam je, ze ked je niektora tabulka innodb a este k tomu pomerne velka, tak "SELECT COUNT(*) FROM table" pri vypise tabuliek v databaze je problem.

ikona Jakub Vrána OpenID:

Taky jsem si toho všiml, proto jsem to v SVN verzi (budoucí verze 1.10.0) už před časem změnil na přibližný počet ze statistik.

Observer:

Děkuji za skvělý a elegantní nástroj.

ikona Přesný čas:

Snad bych jen dodal že nyní se aplikace jmenuje adminer a najdete ji na http://www.adminer.org :)

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 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.