• Home
  • střešní nosiče
  • slevy
Blue Orange Green Pink Purple

Archive for Leden, 2009

You can use the search form below to go through the content and find a specific post or page:

Led 13

Tak zase snad nebudu nějakou chvíli bos

Včera asi o půl 12 večer jsem opět nemohl po své pravidelné dávce Redbullů spát, proto jsem začal dloubat a zkoumat co bych tak mohl vyvádět. Podíval jsem se na své divino.cz a řekl si, že by kovářovic kobyla mohla už mít alespoň nějaké jednoduché okování. Proto mistr kovář usedl a stvořil částečný přehled nějaké té práce co už stihl za dobu vykonávání řemesla zhotovit. Reference na http://divino.cz.

Zároveň si ale řekl že jeho fotografie na jakubbrabec.cz byla už dostatečně nepatřičná, proto předělal i tu svou vizitku (nebo lištu? Jak tomu mám sakra říkat?) a vrátil se k zelené, co má tak moc ráááád :-)

Co jinak připravuje? Úpravy evýdaje.cz na základech žádostí uživatelů, naplnit něčím novým gagtv.cz a samozřejmě i nějakou tu novou službičku co obohatí hladinu vody českého internetového rybníčku.

Led 12

Zálohování MySQL dat přes PHP – update

UPDATE: Ve skriptu bylo opraveno escapování vkládaných dat podle Davida Grundla.

Pokud má člověk napsaný velký systém a klient z něj chce pravidelně zálohovat data, nezbude nic jiného než napsat zálohovací skript. Zde se nám ale nabízí různá řešení (např. exec, vypisovat jednu tabulku po druhé ručně), dnes si popíšeme jedno pomocí MySQL dotazů.

Protože tabulek máme v databázi opravdu požehnaně a ke každé psát dotaz by byla sebevražda, napíšeme si jednoduché funkce, které nám vrátí všechna data ze všech tabulek. A to pěkně v MySQL insertech.

Základem jsou dotazy

Vše je jen a jen o dotazech. Stačí chvíli hledat v MySQL nápovědě či umět anglicky a ovládat logické myšlení.

SHOW TABLES
SHOW COLUMNS FROM table

První z těchto dotazů nám vrátí seznam všech tabulek v aktuálně používané databázi, ten druhý vrací informace o sloupcích určité tabulky aktuálně používané databáze.

Zdrojový kód

<?php
/*
 *  @author: Jakub Brabec, http://www.jakubbrabec.cz
 */

function zalohujDatabazi($database)
{
    $query = mysql_query("SHOW TABLES");
    while($v = mysql_fetch_assoc($query))
    {
        $text .= "--------------------\nData tabulky ".$v['Tables_in_'.$database]."\n--------------------\n";
        $text .= tabulkaDatabaze($v['Tables_in_'.$database]);
        $text .= "--------------------\n\n\n";
    }
    return $text;
}

function tabulkaDatabaze($table)
{
    $i = 0;
    $query = mysql_query("SHOW COLUMNS FROM ".$table);
    while($v = mysql_fetch_assoc($query))
    {
        $sloupce[$i] = $v['Field'];
        if(strpos($v['Type'], "int") === false AND strpos($v['Type'], "decimal") === false)
            $cislo[$i] = false;
        else
            $cislo[$i] = true;
        $i++;
    }

    $query = mysql_query("SELECT * FROM ".$table);
    while($v = mysql_fetch_assoc($query))
    {
        $text .= "INSERT INTO ".$table." VALUES(";
        for($i = 0; $i < count($sloupce); $i++)
        {
            if($cislo[$i] == true)
                $text .= $v[$sloupce[$i]];
            else
                $text .= "'".mysql_escape_string($v[$sloupce[$i]])."'";
            if($i < count($sloupce) - 1)
                $text .= ", ";
        }
        $text .= ");\n";
    }
    return $text;
}

?>

Jak vidíte,  máme 2 funkce. První s názvem zalohujDatabazi nám projede všechny tabulky v aktivní databázi a vrací výsledek v textové formě. Druhá si nejprve přečte strukturu tabulky, tím zjistí názvy sloupců a jejich datové typy, a následně vytvoří samotný dotaz, který vypadá následovně.

INSERT INTO vyplaty VALUES(8, '2008-11-03');

Popis funkčnosti

Předat funkci zalohujDatabazi název databáze do proměnné $database je nutné, protože dotaz SHOW TABLES vrací data v proměnné Tables_in_nazevdatabaze. Průběh skriptu při MySQL dotazu doufám popisovat nemusím :-)

Funkci tabulkaDatabaze se předá název aktuální tabulky,  ze které si pomocí dotazu SHOW COLUMNS FROM tabulka vytáhneme sloupce s jejich typy a následně určíme zda-li se jedná o číslo nebo ne – pomocí funkce strpos. V uvedeném příkladu máme  2 číselné typy – int (zároveň i tinyint) a decimal. Ke každému sloupci tabulky si tak určíme její typ a využijeme ho později při tvorbě insert dotazu. Pokračujeme výběrem všech dat z tabulky, zde se již uplatňuje typ sloupce. Pokud nejde o číslo, uloží se data do jednoduchých uvozovek a tím zajistíme správné vložení do tabulek.

Celá procedura se tedy logicky volá

$zaloha = zalohujDatabazi("blog");

Doufám že vám funkce přijde užitečná a popis dostatečně srozumitelný.

Led 11

Flash a řízení textových polí

Pokud děláte nějakou zajímavou Flashovou aplikaci, určitě se neobejdete bez textových dat od uživatele či jiných dynamických textových políček (např. load). Proč se ale text ukazuje kostrbatě či vůbec nejdou napsat nějaké znaky? Odpovědí je embedování znaků.

Jak vidíte na obrázku vlevo, text načtených procent je tak nějak divně deformovaný. Je to způsobeno tím, že samotný swf soubor neobsahuje onen určitý font (v tomto případe Myriad Pro). Co tedy udělat pro to aby fungoval jak má? Jednoduše, přiložit ho.

Výběr embedovaných znaků

Pokud je textové pole dynamické či vstupní (input), vyskočí nám vpravo od vyhlazování nové tlačítko – Embed. Jeho otevřením získáme seznam všech dostupných znaků a jejich kombinací. Díky tomu můžeme například určit co uživatel napíše jako vstupní data a nemusíme později ošetřovat složitě vstup přímo kódem.

V našem případě vybereme numerické znaky a do dalších doplníme znak procenta.

Potvrdíme OK a spustíme animaci. Výsledkem je krásné a vyhlazené písmo, které jsme si zvolili :-)

Na co však nezapomínejme: Znaky se ukládají do samotného swf souboru, tudíž se zvětšuje jeho výsledná velikost! Proto vybírejte jen ty které opravdu potřebujete.

Led 10

Hodnocení 2008

Jakožto všichni ostatní, musím i já ohodnotit předchozí rok. Nejde o žádnou posloupnost ;-)

  1. Vydělal jsem miliardu korun
  2. Uplatil jsem pár českými obecní radu abych si mohl postavit v historické části města menší vilu (asi jen 20+10)
  3. Koupil  jsem pozemky na měsíci
  4. Za $200.000 jsem si rezervoval letenku do vesmíru
  5. Nemluvil jsem o penězích
  6. Narodil se mi syn, bude truhlářem (a basta!)
  7. Nebyl jsem pozván na žádnou svatbu
  8. Urazil jsem podezřele málo lidí
  9. Byl jsem na Maledivách
  10. Spal jsem s 8 ženami naráz
  11. Byl na mě spáchán útok mafií
  12. Našel jsem nejlepšího kodéra (a máš to zadarmo!)

Tak to by bylo asi v rychlosti shrnuto, jinak byl rok celkem nuda.
Mám nový design :-) pěkný, že?

Brabčákův blog

  • Jakub Brabec

    Follow @JakubBrabec Narodil se a již tenkrát mu byla prorokována skvělá budoucnost. Jeho osobnost je dostatečně silná na absolutní destrukci všech nástrah.

    Rád žere párky, pizzu, rád řídí, rád myslí, rád píše, rád spí a nerad pracuje. A taky rád řídí auto.

    Největší úspěch měl v první třídě (to víš, matika), pak ale dostal první počítač a už to s ním šlo z kopce. Vyhrával jednu matematickou soutěž za druhou, na těláku mu daly na prdel ženský a ve fyzice byl lepší snad i křeček.

    Dnes, v jeho 22 letech, je již beznadějně ztracen v online bludišti a už není cesty zpět. Proto má jakousi zvrhlou povinnost vylejvat své poznámky do tohohle online bloku. Poznámkáče.

  • Rubriky
    • Finance (2)
    • Flash a Actionscript (2)
    • Internet (10)
    • Moje projekty (8)
    • Sakumprdum (9)
    • Sociální pokusy (2)
    • Vztahy, volný čas (17)
    • webdesign (2)
  • Twitter
  • Exterňáky
    • Slevy česky
  • Koho rád čtu
    • Slevy česky
  • Mé projekty
    • EGO
    • Thule
    • Webdresink studio
  • Archives
    • Červen 2011
    • Červenec 2010
    • Červen 2010
    • Červen 2009
    • Leden 2009
    • Prosinec 2008
    • Listopad 2008
    • Září 2008
    • Srpen 2008
    • Červenec 2008
    • Červen 2008
  • Search






  • Home

© Copyright Brabčákův blog. All rights reserved.
Designed by FTL WordPress Themes brought to you by DT Web Template

Back to Top