Autor Zpráva
johnny
Profil *
mam maly problem pri pouzivani SET
mam v SET zadefinovanych viac moznosti,
ak zvolim pre jeden objekt 2 moznosti napr.,
tak mi to pri selecte nenajde,
ale ked vylucim vsetky moznosti a necham iba jednu jedinu (ako pri ENUM)
tak mi to funguje a vsetky selecty najde..

viete poradit cim to je sposobene?

priklad: farba je (modra,biela)
ak dam vyselectovat select * from tabulka where farba like modra; (tak mi nenajde nic)

ale ked v mysql zrusim to biela a nastavim iba farbe je (modra)
tak mi select bez problemu najde.

preco sa to tak sprava?

vdaka.
Joker
Profil
johnny
ak dam vyselectovat select * from tabulka where farba like modra; (tak mi nenajde nic)
Co dát řetězec do uvozovek:
select * from tabulka where farba like "modra"
Kajman_
Profil *
nebo
where find_in_set('modra',farba);
johnny
Profil *
nepochopili sme sa asi.. (tie uvodzovky tam nehlasia ziadnu chybu)
mam strukturu tabulky: auto (nazov tabulky)

Field - Type - Length/Values*
farba - SET - ['modra','biela']
nazov - varchar - 30

a insert:
felicia (nazov) - farba je (modra, aj biela (pretoze su aj biele aj modre felicie na sklade))
a ja chcem urobit select ze ake auta mame na sklade ale iba tie co su bielej farby?
a vysledok mi ma vyjst felicia (lebo mame aj modru, aj bielu). ale mne nevyjde nic.
a sql prikaz na to pouzivam:
<?
$spojenie = mysql_pconnect("...","...","..." );
mysql_select_db("...", $spojenie);
$vysledok = mysql_query("
select * from auto where farba like 'modra'
");
echo "<table>";
while ($zaznam = mysql_fetch_array($vysledok) ):
echo $zaznam["nazov"] ;

etc.. etc..

ak v databaze zadam iba ze mame iba biele felicie.. tak mi to najde presne podla toho skriptu bez problemu, ak dam, ze mame modre aj biele.. tak sa mi to sprava, akoby som pre feliciu neurcil ziadnu farbu.

a tomu nechapem ze preco.. alebo ako to mozem upravit.
Joker
Profil
Ahá. Otázka v prvním příspěvku ale zněla jinak.

V tomhle případě- jak zadáváte ten dotaz?
Správně by mělo být něco jako:
SELECT sloupce FROM auto WHERE znacka="Felicia" AND (barva="modra" OR barva="bila")
Kajman_
Profil *
johnny
Ten find_in_set jste asi nezkoušel, že?
johnny
Profil *
find_in_set som skusal, ale neviem to tam dajak nastelovat..

akoze este jedna vec tam je.. ze tento riadok:
select * from auto where farba like 'modra';

je vlastne napisany tak: select * from auto where farba like '$premenna';

no a ta $premenna je nacitavana zo selectu html, kde $premenna je raz bud modra, alebo biela. idem skusit ten jokerov napad ale podla mna by to malo fungovat aj tak ako ja mam napisane. a ten find_in_set skusam ale asi to zle tam dopasujem, lebo to neide dajak.
johnny
Profil *
find_in_set skusam takto:

select * from auto where name like 'felicia' and farba find_in_set('modra','biela');

tak skusam ten find_in_set ale funguje to rovnako ako aj predtym..
cize ked mam nastaveny SET na dve a viac moznosti berie to akoby som tam nemal udanu ziadnu farbu,
ale ked SET nastavim iba na jednu jedinu moznost (napr.biela) tak mi to funguje bezproblemovo..

nechapem preco.
Kajman_
Profil *
and find_in_set('modra',farba) and find_in_set('biela',farba)
johnny
Profil *
no ten find_in_set funguje akosi.. ale teraz mi to vyhodi stale, aj ked zadam ze farba je cervena, tak mi vyhodi aj to, kde farba je biela..

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: