Autor Zpráva
j
Profil *
mam taku vec:
$premenna="biela, modra, cervena";


potrebujem urobit select:
select * from auto where farba like '$premenna' (je bud biela, modra, alebo cervena);


treba nejako rozlozit tu $premennu v php? alebo je na to iny trik akym napisat select? alebo sa to riesi uplne nejak inac?

dakujem za pripadnu radu.
Nox
Profil
select * from auto where farba in (".implode(",",$premenna).")
j
Profil *
skusil som to ale vypisuje mi to:

Warning: implode(): Bad arguments.
somebody
Profil
řekl bych že by tam ty proměnné měli být v uvozovkách.

Zkuste ještě celý implode uzavorkovat

select * from auto where farba in (' ".implode(",",$premenna)." ')
nightfish
Profil
Warning: implode(): Bad arguments.
druhý parametr implode musí být pole...
select * from auto where farba in (".implode(",",explode(",", $premenna)).")

(ale pořád zůstane problém v tom, že hodnoty v tom poli by měly být oapostrofované...)
takže nakonec asi takto
$pole = explode(",", $premenna);
foreach ($pole as $k => $v) $pole[$k] = "'".$v."'";
select * from auto where farba in (".implode(", ", $pole).")
sicario
Profil
A co:
"'" . implode("', '", $pole) . "'"


Ten foreach je tam zbytecny...

Jo a jeste bude problem s tim, ze oddelovac je carka s mezerou (asi volitelne), takze na rozdeleni retezce bude nutne pouzit regularni vyrazy.
$pole = preg_split("/,[ ]*/", $premenna);
j
Profil *
ja som to nakoniec vyriesil inym sposobom, trosku zlozitejsim na pohlad.. ale funguje..

ale idem poskusat aj tieto tu riesenia..

;)
j
Profil *
teraz mam problem rozlozit taky string:

$premenna=('Prve MenoDruhe Meno');

viete niekto poradit ako to rozlozit na 1.Prve Meno 2.Druhe Meno?

neviem aky pouzit delimiter.. nic ich nerozdeluje..
Alphard
Profil
$premenna=('Prve MenoDruhe Meno');
proč tak blbý tvar? z čeho to berete? nejlepší by bylo to upravit, oddělit třeba ;; apod.
jinak mě napadá jen hledat 3 velké písmeno
j
Profil *
berem to zo selectu a dostanem taky vypis, no zatial som neprisiel nato ako to upravit do vhodnejsej podoby.
Alphard
Profil
dej sem script

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: