Autor Zpráva
capricorn
Profil
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
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
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
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
capricorn - zle som to pochopil. Ale nerozumiem čo chceš dosiahnuť.
capricorn
Profil
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
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
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
capricorn
Pro zajemce: Jsem ochotny se financne vyrovnat, ovsem za rozumnou cenu.

To zní zajímavě :)
capricorn
Profil
BetaCam

Rovna mne na Tebe prisla myslenka. ;-) Mas zajem?
BetaCam
Profil
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
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
capricorn

Mimochodem další věc je ta že nikde nezmiňuješ jakou roli vlastně hraje pole s klíčem "s"
capricorn
Profil
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
capricorn
Je v mém profilu, ale jinak je to :

betacam(zavinac)centrum.cz
capricorn
Profil
BetaCam

Aha, no nevedel jsem, jestli je aktualni, tak jsem se radeji zeptal. Jinak mail jsem uz odeslal, takze se na to muzes podivat.

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:

0