| Rubrika Php / mysql
Vkladanie obrázkov do databázy
Zdravím. Pasujem sa s problémom ako pridať obrázky (napr.obaly kníh) k jednotlivým výpisom z MySQL databázy ak ich mám uložené napr. v zložke „images/thumbs“ pod názvami zhodnýmy s ID jednotlivých položiek (kníh), napr. 1.jpg, 2.jpg.. . Nechcem obrázky vkladať do MySQL databázy pomocou BLOB kvôli dosť objemnej databáze. Ďakujem
Riešenie
Ukladať obrázky priamo do databázy pomocou BLOB dátového typu naozaj nie je najideálnejšie riešenie. Do databázy sa zvykne ukladať len názov súboru, prípadne cesta, pričom postup je relatívne jednoduchý. Možnosti sú dve:
1. Zistenie nasledujúceho IDčka.
Keďže chceme, aby názov súboru bol zhodný s ID záznamu v DB, musíme si pred vložením do databázy zistiť ID nasledovného záznamu. O tom tu na PHPBlogu jeden článok bol, slúži na to pomerne priamočiara funkcia. Viď tu.: http://www.phpblog.sk/…toincrement/.
function getNextAutoincrement($table) { $result = mysql_query("SHOW TABLE STATUS FROM ".$database." LIKE '".$table."'"); while($array = mysql_fetch_assoc($result)) { $next_id = $array[Auto_increment]; } return $next_id; }
Takto jednoducho zistíme ID nasledovného záznamu, obrázok uploadneme
pomocou nejakých funkcií. (Viď napr. http://www.phpblog.sk/…m-safe_mode/)
a nastavíme mu ako názov výstup funkcie
getNextAutoincrement().
2. Editovanie už vloženého záznamu
Druhou možnosťou je najprv vložiť do databázy záznam a využiť
natívnu PHP funkciu mysql_insert_id(). Tá vráti ID naposledy
vloženého záznamu. Po zistení IDčka nahráme obrázok s týmto názvom na
server a opätovne pomocou MySQL UPDATE funkcie editujeme už vložený záznam,
pričom do stĺpca s názvom obrázku vložíme ID vrátené funkciou
mysql_insert_id().
Tento krátky tip vznikol na základe podnetu z wishlist formuláru.
Tomáš Mašek
naspäť
prispieť do diskusie [2]
Vyhľadávanie
Posledných 5 komentárov
Viac z rubriky
Ako ochrániť includované PHP súbory?
Automatické generovanie formulárov z MySQL
Automatický prevod texu na hyperlink
Cachovanie do HTML súboru
Cachovanie s pomocou funkcií serialize/unserialize
Čiernobiele obrázky v PHP
Dynamická tvorba URL
Fulltext ako názov stĺpca v tabuľke
Getcwd – Ako ľahko získať absolútnu cestu
Import z Excelu do MySQL databázy
Maximálny timeout vykonávania SQL skriptu
Microtime – rýchlosť načítania stránky
Odstránenie diakritiky v PHP pomocou iconv()
Overovanie a kontrola formulárov v PHP
Parsovanie XML súboru v PHP
PHP a zachytenie nedoručených mailov
PHP funkcia implode
Porovnávanie a dátovy typ DATE
Práca so súbormi pri zapnutom safe_mode
Prihlasovanie uživateľa prostredníctvom $_SESSION
Real-time kontrola e-mailovej adresy AJAX-om
Spracovanie dátového typu ENUM do HTML selectu
Strpos a offset – nájdenie výskytu znaku v reťazci
Tip: Generovanie PDF súborov
Tip: jednoduché šifrovanie a dešifrovanie v PHP
Tip: správne includovanie súborov
Ukladanie jazykových verzií statických textov
Veľmi jednoduchý návod na pekné URI
Výber záznamov začínajúcich číslom
Vyčistenie viacrozmerného poľa
Vyhľadávanie, pekné URI a diakritika
Vypísanie abecedy v PHP
Využívanie unikátnych kľúčov v MySQL databáze
Zaradenie jednej položky do viacerých kategórií
Zistenie hodnoty ďalšieho ID – autoincrement
Zložené MySQL dotazy – LEFT JOIN
Zvýrazňovanie syntaxe kódu – GeSHi
Pridať komentár



