| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal P3CKIV: 11.07.2009 14:48 | |
|
Riešim takýto problém:
Mám tabuľku s parametrami produktov ktorá má 3 stĺpce:
Kód: param_nadradeny | param_hodnota | param_pd_id ----------------------------------------------------------- 1 | Value | 5 2 | Test | 5 1 | Pokus | 2
Na stránke chcem, aby sa dalo filtrovať produkty pomocou parametrov, t.j. odošlem formulár s IDčkami parametrov a ich hodnotami. Následne potrebujem z DB získať parametre, ktoré som zvolil, ale musia mať hodnoty ktoré som vyplnil, t.j. odošlem napr. že chem aby mi vypísalo produktu, kde parameter s ID 2 má hodnotu Test a parameter s ID 1 má hodnotu Value. Databáza by mi mala vypluť IDčka produktov, ktoré vyhovujú parametrom.
Skúšal som aj tento SQL, ale nefunguje:
SELECT * FROM `parametre` WHERE (`param_id`='2' AND `param_hodnota`='Test') AND (`param_id`='1' AND `param_hodnota`='Value')
Uvítam každú radu. Dúfam že ma chápete
_________________ V príprave... |
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice |
Ak spravne chapem tak staci vymenit AND za OR
Kód: SELECT * FROM `parametre` WHERE (`param_id`='2' AND `param_hodnota`='Test') OR (`param_id`='1' AND `param_hodnota`='Value')
kedze param_id sa nemoze rovnat 2 a zaroven 1 tak ti to nikdy nic nenajde...
ak tym param_id myslis stlpcek param_nadradeny ?
|
|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal autor témy P3CKIV: 11.07.2009 15:46 | |
|
Hej, param_id je param_nadradeny, ospravedlnujem sa
Keď tam dám OR, znamená, že platí buď jedno alebo druhé. Lenže ja potrebujem aby platili obe podmienky. Keď nahradím AND za OR, dostanem toto: (v DB je viac riadkov ako len tri...)
param_nadradeny | param_hodnota | param_pd_id
-----------------------------------------------------------
1 | Value | 5
2 | Test | 5
1 | Value | 2
A toto ja práve nechcem , pretože posledný riadok nespĺňa druhú požiadavku
_________________ V príprave... |
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice |
ale obe podmienky nebudu platit nikdy, pretoze v prvej uvadzas ze param_id ma byt 1 a v druhej ze param_id ma byt 2 a v jednom riadku param_id nikdy nebude 1 a zaroven 2 tak preto tam AND nebude
btw aj posledny riadok splna druhu podmienku...
1 | Value | 2
a ak myslis posledny riadok z predch. prispevku tak ten by ti vratit nemalo, ten skutocne nesplna poziadavku
1 | Pokus | 2
|
|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal autor témy P3CKIV: 11.07.2009 17:40 | |
|
Tak inak.
Mám takúto štruktúru s údajmi:
A potrebujem dostať toto cez SQL. IDčko produktu nepoznáme (berte do úvahy):
_________________ V príprave... |
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice |
hmm no asi uz rozumiem kde je problem, jeho riesenie vsak nepoznam... ta poziadavka mi pride zvlastna, nerozumiem jej vyuzitiu, co vlastne chces zistit? mas prvy a posledny stlpec a chces zistit druhy? na to ti staci len jedna podmienka z tych dvoch...
nepoznas param_pd_id ale potrebujes dostat param_nadradeny 1 a 2 s prislusnymi param_hodnota. Ked spustis
Kód: SELECT * FROM `parametre` WHERE (`param_id`='2' AND `param_hodnota`='Test') OR (`param_id`='1' AND `param_hodnota`='Value')
tak vyhodi aj treti riadok, ktory nepotrebujes - no ale tomu sa asi neubranis kedze maju dva parametre ktore poznas rovnake a ten treti ktory ich odlisuje nepoznas.
asi som ta zle pochopil, takze neviem ti pomoct....
|
|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal autor témy P3CKIV: 11.07.2009 18:18 | |
|
Okej. Tak dajme tomu že mi to vyhodí 3 výsledky, z toho 2 budu mať rovnaké IDčko produktu. Ako tie 2 riadky zlučim do jedného a ten posledný z toho SQL zmažem? T.j. ostalo by mi potom napr. len 1 | 1 | ATi HD4770
// UP: Problém vyriešený. Použil som niekoľko foreach-ov a následne to nejakým spôsobom upravil Dík za pomoc scrysurn
_________________ V príprave... |
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Pravy stlpec v HTML, XHTML, XML, CSS | 2 | 492 | 26.02.2009 20:58 rooobertek | | ako vydelit v exceli jeden stlpec druhym stlpcom? v Ostatné programy | 4 | 599 | 25.11.2007 17:35 KatjushaMan | | mysql where v Databázy | 1 | 744 | 26.08.2008 16:35 p360t | | WHERE or ?? v PHP, ASP | 5 | 520 | 17.03.2008 16:36 Blackshadow | | WHERE array v PHP, ASP | 0 | 453 | 25.09.2008 15:17 rooobertek | | mysql Where v PHP, ASP | 5 | 494 | 17.04.2008 9:27 Xardas | | mysql where like v Databázy | 1 | 969 | 26.02.2011 23:41 stenly | | Hash v sql where v PHP, ASP | 7 | 394 | 04.03.2012 16:27 account23 | | SQL > WHERE IN v Databázy | 15 | 583 | 20.09.2012 8:49 stenley | | Vivo v7 - where to buy v Mobilné zariadenia | 1 | 299 | 16.01.2018 9:29 kllr007 | | Where is the Guru - problem Gothic3 v Počítačové hry | 15 | 2235 | 26.08.2010 10:50 johnny7 | | zvlastny problem s WHERE v MYSQL v PHP, ASP | 3 | 277 | 08.10.2013 9:36 Ďuri | | ako zmenit podmienku "where" pre listbox cez radiobutton ? v JavaScript, VBScript, Ajax | 0 | 424 | 18.02.2011 0:18 10tomi | | pouzit premennu vytvorenu cez "as" vo where - mysql v Databázy | 4 | 304 | 08.12.2013 23:54 DeeJay3 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|