Předmět Autor Datum
Ano.
Kráťa 30.04.2008 21:11
Kráťa
Díky za mnohomluvnou odpověď, která, jakkoliv postihla téměř všechny fasety mé otázky, stále není zc…
Drbo 30.04.2008 21:15
Drbo
Možná ti neodpovím tak, jak očekáváš, ale myslím si, že když nedojde hora k Mohamedovi, musí Mohamed…
Flash_Gordon 30.04.2008 21:26
Flash_Gordon
Na nahrazení v tabulce by zase použil replace_table (nebo jak to je) ne? Nepoučuji, ptám se.
Kráťa 30.04.2008 21:34
Kráťa
Jde o to, že mám tabulku s názvy filmů (každý je v tabulce několikrát - např u jména režiséra, kamer…
Drbo 30.04.2008 21:35
Drbo
Ano například script prohlédne vytažené řetězce podle režiséra a pokud se tam vyskytuje "regie", nah…
Kráťa 30.04.2008 21:41
Kráťa
Jo, to je přesně ono. Pokusím se to neuměle zakomponovat do kódu, v nejhorším se ještě přihlásím o r…
Drbo 30.04.2008 21:56
Drbo
Třeba si vytáhneš něco z tabulky v db (select) a potom na vytáhnuté použiješ: vytazene_z_tabulky =…
Kráťa 30.04.2008 21:31
Kráťa
Jo, to je asi ono... tedy pokud to nevrátí jen hodnotu, ale zase to nacpe zpátky do té tabulky...
Drbo 30.04.2008 21:38
Drbo
Samozřejmě, nacpe, jak to tam bylo. str_replace nemění data v tabulce.
Kráťa 30.04.2008 22:03
Kráťa
Aha, host je na dovolené a ty ho zastupuješ. Díky svým dedukčním schopnostem jsem tuto záměnu bystře…
HamHam 01.05.2008 02:03
HamHam
LOL LOL LOL íííííííhaháááááááááá :-D
Kráťa 01.05.2008 14:05
Kráťa
UPDATE `nazev_tabulky` SET `nazev_sloupce` = REPLACE(`nazev_sloupce`, 'co_najit', 'za_co_nahradit')…
Marvin 01.05.2008 13:43
Marvin
přesně, už jsem to chtěl napsat. UPDATE je to, co asi pán tázající očekává.
marekdrtic 01.05.2008 13:49
marekdrtic
Škoda, že nikde nenapsal, že chce nahradit data v té tabulce a ne třeba v proměnné, už to mohl dávno…
Kráťa 01.05.2008 14:08
Kráťa
no právě :-)
marekdrtic 01.05.2008 14:30
marekdrtic
Díky za odpověď... Měl jsem pocit, že jsem dotaz formuloval dostatečně přesně, omlouvám se... Ovšem…
Drbo 01.05.2008 14:49
Drbo
Já bych tabulku nechal jak je. Pro zobrazení ve stránce: Vybral bych data příkazem select a na to by…
Kráťa 01.05.2008 14:58
Kráťa
No, myslím, že nejlepší bude, když budu zcela konkrétní... Mám tabulku s filmovými Oscary... Tabulka…
Drbo 01.05.2008 16:15
Drbo
Aha, to je jiná. V tom případě bych zkusil, co psal Marvin UPDATE `nazev_tabulky` SET `nazev_sloupc…
Kráťa 01.05.2008 16:46
Kráťa
OK, budu experimentovat... Já v těch kódech také nejsem nijak zběhlý, ale baví mě si s tím hrát a vy…
Drbo 01.05.2008 17:58
Drbo
To je také můj případ u PHP. Jsem spíše na HTML+CSS. Nicméně jak to člověk stále potřebuje, trochu t…
Kráťa 01.05.2008 18:04
Kráťa
Díky za ten link, to jsem hledal už dlouho... Jinak pokud jde o "nalezení do hlavy" to je pravda, al…
Drbo 01.05.2008 18:12
Drbo
Já se u PHP děsně trápím se syntaxí. Někde mám místo " ' či obráceně a celé něco mi pak nechodí, i k…
Kráťa 01.05.2008 18:29
Kráťa
Hvězdička nepomůže, musíš ten SQL dotaz provést pro každý sloupec zvlášť. Replace nahradí pouze hled…
Marvin 01.05.2008 18:36
Marvin
Aha, takže napsat *.php soubůrek a v něm třeba 50 příkazů. Ještě bych si vyrobil formulářík, co by m…
Kráťa 01.05.2008 18:45
Kráťa
Asi tak, ale neužívej ty hnusný citově zabarvený slova ]:(. Tiskárnička netiskne na černý papíreček…
marekdrtic 01.05.2008 18:48
marekdrtic
:-p Těch příkazů bude 120... :-?
Drbo 01.05.2008 18:57
Drbo
To ujde :-D
marekdrtic 01.05.2008 19:11
marekdrtic
::) poslední
Kráťa 01.05.2008 20:04
Kráťa
Soubůrek (nebo co myslíš) není žádné citově zabarvené slovo, nýbrž jednoslovný výraz pro malý soubor…
Kráťa 01.05.2008 18:59
Kráťa

Možná ti neodpovím tak, jak očekáváš, ale myslím si, že když nedojde hora k Mohamedovi, musí Mohamed k hoře.

Jinými slovi já bych to udělál následovně:
Pokud budeš pracovat s nějakým řetězcem "vytaženým" z databáze, kde má být nějaké slovíčko nahrazeno,
tak ten výraz jednoduše obal do fce: str_replace

Jak efektivní to je netuším, ale jednoduché a přehledné to je.

//Edit

Otazkou je samozřejmě co přesně potřebuješ.
Pokud je učelem, aby se ve výsledném dotaze jenom přepsalo nějaké slovo, tak toto je dostačující.
Jestliže ale potřebuješ nahradit stávající slova v databázi, tak je to spíše nesmysl.

Jde o to, že mám tabulku s názvy filmů (každý je v tabulce několikrát - např u jména režiséra, kameramana atd.), a to je v angličtině. Potřeboval bych vymyslet, jak to jednoduše přeložit do češtiny v okamžiku, kdy český distributor zvolí český název... Takže udělat nějaký formulář, kam zadám anglický a český název, skript prohlédne všechny pole tabulky a zapíše tam nový řetězec...

Třeba si vytáhneš něco z tabulky v db (select) a potom na vytáhnuté použiješ:

vytazene_z_tabulky = Str_Replace("klaus je vul","paroubek je vul;",$vytazene_z_tabulky);

Tím se ti všechny nalezené "klaus je vul" nahradí za "paroubek je vul".
a proměnná $vytazene_z_tabulky bude mít tuto hodnotu.

Díky za odpověď... Měl jsem pocit, že jsem dotaz formuloval dostatečně přesně, omlouvám se... Ovšem 1) nemohu uvést jméno sloupce, protože se ten hledaný řetězec může nalézat ve více sloupcích (vyřeší to hvězdička?) a za 2) potřebuji nahradit jen část řetězcce, zbytek ponechat - to ptenhle příkaz dokáže také?

Já bych tabulku nechal jak je. Pro zobrazení ve stránce:
Vybral bych data příkazem select a na to bych aplikoval replace (viz výše)
http://pc.poradna.net/question/view/221516-php-repl ace#re-221571
A s tabulkou by se nic nedělo. Jde snad o zobrazení na stránce ne? Ale zase kdyby mělo jít o předělání celých tabulek, tak bych si asi udělal něco na předělání. Ono jde i o to, jaký je zdroj těch dat do tabulky a jestli to neukládat rovnou dobře.

No, myslím, že nejlepší bude, když budu zcela konkrétní... Mám tabulku s filmovými Oscary... Tabulka má mnoho sloupců - např nejlepsi_film_1, nejlepsi_film_2... až nejlepší film 5 (protože je 5 nominací), pak nejlepsi_rezie_1, nejlepsi_rezie_2 atd... prostě všechny kategorie x 5. Já to tam prostřednictvím formuláře, který jsem si udělal, poměrně snadno naházím v angličtině z oficiálních stránek... A pak, rok poté, přijde český distributor s českým názvem filmu... a já bych chtěl co nejjednodušším způsobem projít celou tabulku a vyměnit anglický název za český...
Koukni jak to vypadá sem: http://www.drbo.cz/infusions/oscar_panel/oscar.php? selected1&select1=2007

Aha, to je jiná. V tom případě bych zkusil, co psal Marvin

UPDATE `nazev_tabulky` SET `nazev_sloupce` = REPLACE(`nazev_sloupce`, 'co_najit', 'za_co_nahradit')

Asi tam jdou přidat všechny sloupce místo "nazev_sloupce" dát "*"?
Nejsem v PHP kovaný, z hlavy to nevím, možná píšu kravinu, chce to zkusit.
Skvělý český manuál na MySQL je tady
mm.gene.cz

edit://asi bych si to vyexportoval, nainstaloval Wamp Server, spustil na lokále, v phpMyadmin (či jak to je) naimportoval a nejdříve to vyzkusil tam, potom bych si ten správný dotaz do db dal do externího *.php souboru...

Díky za ten link, to jsem hledal už dlouho... Jinak pokud jde o "nalezení do hlavy" to je pravda, ale má to jeden háček - já si s php hrál poměrně hodně asi před třičtvrtě rokem, pak jsem na to čtyři měsíce ani nesáhnul a teď jsem zjistil, že jsem zapomněl naprosto všechno, co jsem se horko těžko naučil... :-(

Já se u PHP děsně trápím se syntaxí. Někde mám místo " ' či obráceně a celé něco mi pak nechodí, i když zbytek mám dobře. A najít to je úplná katastrofa.
Nojo, známá věc. Když se něco nepoužívá, zapomíná se. Já už bych zase stěží dal do kupy to, co jsem psal v QBasic, nebo jak to v DOSu bylo...

Soubůrek (nebo co myslíš) není žádné citově zabarvené slovo, nýbrž jednoslovný výraz pro malý soubor. :-)
Tiskárnička už citově zabarvená je, protože má stále stejnou velikost (samozřejmě stolní, ne nějaká kapesní).

edit://i když ale zase třeba u traktoru, když se řekne traktůrek, není to citové zabarvení, nýbrž tím bývá myšlem malý traktor (jako u toho souboru) a citové čtyřprocentní zabarvení by bylo "traktůrešek". :-)

Zpět do poradny Odpovědět na původní otázku Nahoru