Zadejte hledaný výraz...

Preg_replace – MYSQL/PHP

nulanu
verified
rating uzivatele
(16 hodnocení)
8. 3. 2013 22:44:22
Zdravim, co se týká preg_repleace mam stále mezery a pitřebuji pomoc, mám u zákazníka db v jednom sloupci
aa1={nr}aa2=Neco{nr}aa3={nr}aa4=Neco{nr}
a já potřebuji vytáhnout co je v "aa4=" takze potrebuji aby byl vysledek "Neco" bez toho "{nr}"
Díky za rady
8. 3. 2013 22:44:22
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875561
Registrace
verified
rating uzivatele
(1 hodnocení)
8. 3. 2013 22:59:32
Pokud je aa4 vždycky čtvrté v pořadí a to {nr} je tam vždy, tak:
function getAa4($string) {
$string = "aa1={nr}aa2=Neco{nr}aa3={nr}aa4=Neco{nr}";
$pieces = explode("=", $string);
$aa4 = substr($pieces, 0, -4);
return $aa4;
}
Možná se to dá udělat i líp, teď se mi nechce přemýšlet :-)
8. 3. 2013 22:59:32
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875560
nulanu
verified
rating uzivatele
(16 hodnocení)
8. 3. 2013 23:06:13
práve že není je to systém který je furt ve vývoji bude se to i měnit. ale díky za radu zkusim se od toho odrazit nebo někdo popostrčí jiný. Díky moc
8. 3. 2013 23:06:13
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875559
Registrace
verified
rating uzivatele
(1 hodnocení)
8. 3. 2013 23:09:48
Napsal nulanu;920501
práve že není je to systém který je furt ve vývoji bude se to i měnit. ale díky za radu zkusim se od toho odrazit nebo někdo popostrčí jiný. Díky moc
Pokud se to bude vyvíjet, tak bych doporučil to takhle blbě na hromadu neukládat, ale ukládat každou hodnotu do vlastního sloupce. Nebo použít třeba něco jako hstore v PostgreSQL (obecně bych každýmu doporučoval používat radši PostgreSQL místo MySQL, ale to je na jinou debatu :-)).
8. 3. 2013 23:09:48
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875558
nulanu
verified
rating uzivatele
(16 hodnocení)
8. 3. 2013 23:12:09
ta db již teďkka má 52sloupců a všechny jsou plné. zde jsou kódy já z toho potřebuju vytahnout ten daný, bohužel provozatel od kterého se pronajímá systém to nepředělá
8. 3. 2013 23:12:09
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875557
...
8. 3. 2013 23:24:06
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875556
Pokud ukládáte v jednom sloupci víc parametrů a musíte je textově rozsekávat, máte chybný návrh databáze.
Získat tu hodnotu ze stávajícího řetězce můžete takto
preg_match_all('@aa4=()@U', $string, $matches);
Ale je to akorát textilní záplata na díru v lodi.
8. 3. 2013 23:24:32
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875555
tomve
verified
rating uzivatele
(22 hodnocení)
8. 3. 2013 23:39:07
$string = 'aa1={nr}aa2=Neco{nr}aa3={nr}aa4=Neco{nr}';
preg_match('/aa4=(.*?){/nr}', $string, $a);
echo $a;
edit: pravda, { stačí .
edit 2: je vlastně blbost, že { stačí, musí to být celý {nr}, protože ve stringu bude aa4=scxv{44{nr} a 44 to už nevezme
8. 3. 2013 23:39:07
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875554
nulanu
verified
rating uzivatele
(16 hodnocení)
8. 3. 2013 23:46:14
Vsem díky :) zítra rozdám reputace. Hezký večer
8. 3. 2013 23:46:14
https://webtrh.cz/diskuse/preg_replace-mysql-php#reply875553
Pro odpověď se přihlašte.
Přihlásit