Autor | Zpráva | ||
---|---|---|---|
capricorn Profil |
#1 · Zasláno: 12. 11. 2008, 14:48:15
Zdravim, chtel jsem ulehcit databazi a zatopit pod kotlem php, ale nejak s tim nemuzu hnout.
Mam pole: $array = array("goods" => array(0 => "goods1", "goods2", "goods3", "goods4"), "producer" => array(0 => 1, 2, 3, 4), "a" => array(0 => 0, 0, 2, 0), "s" => array(0 => 0, 1, 0, 2)); A ted mam url napr: http:// .................producer=3&type=a A ted potrebuji vypsat z pole "goods" klic 2, protoze hodnota 3 se nachazi v poli "producer a pritim ma nenulovou hodnotu v poli "a", t.j. vypiseme z pole "goods" hodnotu "goods3". A ted budu mit url napr. http:// .................producer=20&type=a Hodnota 20 v poli "producer" neexistuje, ale v poli "a" mame nenulovou hodnotu, takze vypiseme z pole "goods" klice 2 a 3, t.j. hodnoty goods2 a goods3 Proste potrebuji nize db podminky do php. if(isset($_GET['producer']) && $_GET['producer'] != 0){ $sql .= " WHERE producer = '".$_GET['producer']."'"; } if(isset($_GET['type']) && $_GET['type'] != 'all'){ $sql .= " HAVING ".$_GET['type']." != 0"; } Pokud bude potreba zmenit strukturu toho pole, aby se s nim lepe pracovalo, tak v tom nebude problem. |
||
tiso Profil |
#2 · Zasláno: 12. 11. 2008, 14:59:20
Ak to správne chápem, tak tým, že vyberieš všetky hodnoty z DB + zrušíš obmedzovaciu podmienku v $sql, databázu neodľahčíš, práve naopak...
|
||
capricorn Profil |
#3 · Zasláno: 12. 11. 2008, 15:27:07 · Upravil/a: capricorn
tiso
Ale ja nevybiram vsechny radky z db ba naopak vybiram radky, ktere potrebuji. A to, ze to resim jednim db dotazem to je vec druha, opada tim dalsi dotazovani na db. Je pravdou, ze pri kazdem nacteni stranky se ten dotaz provede znovu, ale podle meho nazoru je lepsi se jednou zapotit nez vicekrat. Ten dotaz je docela svizny, takze mne zajima filtrace na urovni php. A jinak ta podminka $sql v tom db dotazu neni, byl to jen priklad, takze jsi to asi castecne spatne pochopil. EDIT: Jeste male upresneni. Je prece lepsi: SELECT t1.*, t2.* FROM (SELECT ......... WHERE LIKE 'neco') AS t1 INNER JOIN (SELECT........ ) AS t2 ON t1.id = t2.id Nez: 1. Zjistime idecka: SELECT ..........................WHERE LIKE 'neco'; 2. Zjistime radky: SELECT ......................... IN(" . implode(", ", $idecka). ")"; |
||
Mastodont Profil |
#4 · Zasláno: 12. 11. 2008, 15:49:04 · Upravil/a: Mastodont
A ted potrebuji vypsat z pole "goods" klic 2, protoze hodnota 3 se nachazi v poli "producer a pritim ma nenulovou hodnotu v poli "a", t.j. vypiseme z pole "goods" hodnotu "goods3".
Tak to potřebuješ funkci array_search, ta vrací klíč nalezeného prvku, čili něco jako: where goods = $array['goods'][array_search(3, $array['producer'])] |
||
tiso Profil |
#5 · Zasláno: 12. 11. 2008, 16:21:23
capricorn - zle som to pochopil. Ale nerozumiem čo chceš dosiahnuť.
|
||
capricorn Profil |
#6 · Zasláno: 12. 11. 2008, 16:28:58
Mastodont
To je mne jasne, klice vyhledam v pohode, ale spojit tyto klice to uz je problem. Protoze kdyz budu mit napr. producer=3&type=a, tak pole "producer" musi obsahovat hodnotu "3" a zaroven ten klic "2" musi v poli "a" mit nenunulovou hodnutu, v opacnem pripade vratit false a vypsat cele pole. |
||
capricorn Profil |
#7 · Zasláno: 12. 11. 2008, 16:36:47
tiso
No chci se vyhnout tomu, abych nemusel polozit x dotazu, kdyz mne vyhovuje polozit jen jeden, ze ktereho vytvorit pole a s nim pak do konce behu scriptu budu pracovat. Proste potrebuji primo v aplikaci profiltrovat to pole a ne v db. Kdybych to filtroval primo v db dotaze, tak musim polozit x dotazu, ale uplne zbytecne, kdyz mne vyhovuje jeden dotaz, ve kterem si spojim tabulky podle podminkem atd. |
||
capricorn Profil |
#8 · Zasláno: 13. 11. 2008, 08:44:20
Prosim nejakeho hodneho moderatora, aby tohle vlakno presunul do sekce "Prace a zakazky", abych nemusel zbytecne zakladat nove vlakno. Dekuji.
Pro zajemce: Jsem ochotny se financne vyrovnat, ovsem za rozumnou cenu. Po dukladnem vyzkouseni, okamzite poukazu predem domluvene penize z KB, takze pokud budete mit tez ucet u KB, tak mame do nekolik minut pripsane penize na ucte. Jinak v teto fazi, kdy za to budu platit, tak pozaduji i cistou praci, t.j. slusne napsany kod a vysledne pole musi byt serazene podle abecedy. Kodovani mam utf8. |
||
BetaCam Profil |
#9 · Zasláno: 13. 11. 2008, 09:14:32
capricorn
„Pro zajemce: Jsem ochotny se financne vyrovnat, ovsem za rozumnou cenu.“ To zní zajímavě :) |
||
capricorn Profil |
#10 · Zasláno: 13. 11. 2008, 09:23:56
BetaCam
Rovna mne na Tebe prisla myslenka. ;-) Mas zajem? |
||
BetaCam Profil |
#11 · Zasláno: 13. 11. 2008, 09:30:20
capricorn
„Rovna mne na Tebe prisla myslenka. ;-) Mas zajem?“ Jistě jen je problém v tom že tvé informace v prvním postu sou takové všelijaké. Některé informace které tam uvádíš si odporují viz. vypiseme z pole "goods" klice 2 a 3, t.j. hodnoty goods2 a goods3 Jenže v poli které uvádíš je na klíči 2 hodnota "goods3" a na klíči 3 hodnota "goods4" Tvůj popis tedy neberu jako zrovna přesný. |
||
capricorn Profil |
#12 · Zasláno: 13. 11. 2008, 09:41:49
BetaCam
Ano toho jsem si vcera vsimnul a ani jsem to neopravoval a cekal jsem, az si toho nekdo vsimne. Ale tady jsem se o tom ve strucnosti zminil http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=84 797#6 |
||
BetaCam Profil |
#13 · Zasláno: 13. 11. 2008, 09:48:24
capricorn
Mimochodem další věc je ta že nikde nezmiňuješ jakou roli vlastně hraje pole s klíčem "s" |
||
capricorn Profil |
#14 · Zasláno: 13. 11. 2008, 10:13:34
BetaCam
Pole s klicem "s" je jako pole s klic "a", nesmi obsahovat nulovou hodnotu. Jednou bude "s" a podruhe "a". Dej mne prosim mail, ja Ti to napisi mailem, at nedelas neco, co potom nebude splnovat nove ocekavani a zbytecne se do toho oba zamotame. |
||
BetaCam Profil |
#15 · Zasláno: 13. 11. 2008, 11:16:10
capricorn
Je v mém profilu, ale jinak je to : betacam(zavinac)centrum.cz |
||
capricorn Profil |
#16 · Zasláno: 13. 11. 2008, 11:37:33
BetaCam
Aha, no nevedel jsem, jestli je aktualni, tak jsem se radeji zeptal. Jinak mail jsem uz odeslal, takze se na to muzes podivat. |
||
Časová prodleva: 15 let
|
0