abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 0
dnes 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 9
včera 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 4
včera 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
včera 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
včera 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 26
včera 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
včera 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
včera 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
22.3. 23:55 | Nová verze

Opera 44, verze 44.0.2510.857, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 57. Z novinek vývojáři Opery zdůrazňují podporou Touch Baru na nejnovějších MacBoocích Pro (gif). Přehled novinek pro vývojáře na blogu Dev.Opera.

Ladislav Hagara | Komentářů: 1
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 924 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: PHP - jak uložit data z Mysql do pole

    3.11.2014 17:39 HIH
    PHP - jak uložit data z Mysql do pole
    Přečteno: 365×
    Ahoj, snažím se načíst z mysql data a vytvořit z nich rovnou pole.
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    V sql dotazu mám nastavenou jako první položku tabulku s názvem 'key'
    $sql = "SELECT `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;";
    a přesto se pole nevytvoří podle názvů klíčů z mysql ale vytvoří se tam číslování 0,1,2,3,4,5... Poradí někdo? Děkuji

    Odpovědi

    3.11.2014 19:15 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole

    fetchAll() vrací řádky (číslované) a v každém řádku je pole.
    Vrací to pole polí, nebo-li dvou rozměrné pole, přičemž první úroveň má číselné klíče, a druhá, v tomto případě, názvy sloupců.

    1. řádek a sloupec 'key': echo $result[0]['key'];

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    3.11.2014 21:29 HIH
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    A jde nějak jednoduše zajistit, aby to vracela jen v jednorozměrném poli?
    3.11.2014 21:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    A jak si to představuješ?
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    3.11.2014 22:10 HIH
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    No abych nemusel při vypisování těch polí všude vkládat [0], dost to znepřehledňuje kód :-(

    foreach($array as $key => $value){

    echo $value[0]['key'];

    }

    Prostě jen takto
    echo $value['key'];
    3.11.2014 22:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole

    Projdi to normálně pomocí fetch().

    Jinak nerozumím řeči tvého kmene:

    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach($result as $key => $value){
      echo "The 'key' value: " . $value['key'] . " of row: $key\n";
    }
    

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    3.11.2014 23:05 HIH
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Mužeš mi s tím fetchem poradit? To fakt nedám :-(
    Josef Kufner avatar 4.11.2014 01:06 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Umaž All a umaž [0].
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 4.11.2014 01:08 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    ... a pak se podívej na toto a vše ostatní, co tam najdeš.
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 18:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Z hlavy a bez ošetření:
    $res = $db->prepare('SELECT * FROM table');
    $res->execute();
    while($row = $res->fetch(PDO::FETCH_ASSOC)){
      print_r($row);
    }
    Na menší data, třeba i:
    $res = $db->prepare('SELECT * FROM table');
    $res->execute();
    foreach($res->fetchAll(PDO::FETCH_ASSOC) as $row){
      print_r($row);
    }
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 4.11.2014 20:32 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    PDOStatement implementuje Traversable, takže není třeba fetchAll(), což ušetří kus paměti:
    $res = $db->prepare('SELECT * FROM table');
    $res->execute();
    $res->setFetchMode(PDO::FETCH_ASSOC); // Toto může být nastaveno globálně.
    foreach($res as $row){
      print_r($row);
    }
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 20:35 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Neušetří...
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 4.11.2014 20:41 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Ušetří, neboť nemusí natahovat do paměti všechny řádky výsledku najednou. Pokud použije nebuferované dotazy, nebude je mít v paměti ani v databázovém serveru.

    Zkus si to na pár tisících záznamech (např. nějaký export) a uvidíš, jak je to znát.
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 21:00 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Musel bys ty nebuferované dotazy nejprve aktivovat.

    Kromě toho je evidentně chce nacucnout naráz do slovníku, ve kterém klíčem bude sloupec "key".
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 4.11.2014 21:15 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    I když dotaz buferovaný bude, pořád to znamená cca 50% úsporu paměti, kdy v PHP bude v paměti jen jeden řádek výsledku najednou (buffer je v databázi). To je hodně znát v případě, kdy má výsledek větší, než se vejde do limitu paměti nastaveném v PHP.
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 21:18 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Myslím si, že do pár MB to není nutné řešit a výkonnější řešení bude bufferované.

    Default je bufferování zapnuté.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 4.11.2014 21:50 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Zda je dotaz bufferovaný či nikoliv ovlivňuje chování databáze. Tedy toho, co je na druhé straně socketu než je PHP.

    V případě bufferovaného dotazu si databáze připravý celý výsledek v paměti a aplikace dostane kurzor, kterým si po tom výsledku může běhat dle libosti.

    V případě nebufferovaného dotazu je připraven jen aktuální řádek a kurzorem se dá hýbat jen dopředu. Další řádky jsou připravovány podle toho, jak si o ně aplikace říká.

    Nemá to tedy žádný vliv na to, kolik si PHP script ukousne paměti.

    Nebufferované dotazy je nutné použít, pokud jsou požadovány rozsáhlé výsledky. Například při zálohování nebo nějakých exportech. Tam bude i výkon vyšší, neboť se ušetří na alokaci velkého kusu paměti a nedojde k vypláchnutí diskové kaše.

    Pokud aplikace žádá malé výsledky, což je obvyklý případ, je výhodnější naplnit buffer a uvolnit vše ostatní co nejdříve. Proto je bufferování defaultně zapnuto.

    Na druhé straně socketu, v PHP, je tohle celé neviditelné. PHP si tahá řádek po řádku používajíc kurzor a je mu úplně jedno, zda to databáze už má nachystané nebo nikoliv. Rozdíl v použití fetch() či iterátoru oproti fetchAll() je v tom, kolik řádků bude mít PHP v paměti. Pokud použiješ fetch() či iterátor, proběhne zpracování s konstantním množstvím paměti. Ale pokud si napřed celý výsledek načteš pomocí fetchAll(), bude spotřeba paměti lineární s velikostí výsledku. Co se týče rychlosti, vyjde to skoro nastejno, komunikace s databází je totožná. Ušetří se pár volání funkce, ale na druhou stranu se bude více trápit cache mezi CPU a pamětí.
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 21:54 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Takže pokud tazatel bude chtít z databáze vytáhnout desetiřádkové menu a v každém řádku bude 20 znaků, bude rozhodně rychlejší fetchAll(), než to iterovat po jednom.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    4.11.2014 21:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Už jsem to 300let nepoužil, ale předpokládám, že je to pohodlnější ekvivalent mého prvního zápis.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 4.11.2014 21:31 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Pokud by byl fetch() bez parametru, tak ano.
    Hello world ! Segmentation fault (core dumped)
    4.11.2014 21:34 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    Ten tvůj zápis je pohodlnější. Hlavně přitom nepotřebuješ používat ty připitomělé settery.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    3.11.2014 20:06 Kit | skóre: 37 | Brno
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    $result = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
    Funguje to jen pro 2 sloupce.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 4.11.2014 21:30 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: PHP - jak uložit data z Mysql do pole
    $sql = "SELECT `key`, `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;";
    $q->fetchAll(\PDO::FETCH_ASSOC | \PDO::FETCH_GROUP | \PDO::FETCH_UNIQUE)
    Klíčem bude první sloupec a ten bude odebrán z pole, pokud ji tam chceš zdvoj ji.
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.