Autor | Zpráva | ||
---|---|---|---|
Adam501 Profil |
#1 · Zasláno: 29. 6. 2012, 18:59:20
Ahoj.
Jde nějak udělat, aby se podmínkou if vyhledaly všechny položky z formuláře(popř. řádky v databázi), které mají stejnou hodnotu?? Přemejšlím nad tím už asi půl hodiny, ale nenapadá mě žádná použitelná formulace podmínky... :) Adam. |
||
Tori Profil |
#2 · Zasláno: 29. 6. 2012, 20:19:54
K těm položkám z formuláře - koukněte na funkci array_intersect.
|
||
AM_ Profil |
#3 · Zasláno: 29. 6. 2012, 22:42:47
Adam501:
„vyhledaly všechny položky z formuláře(popř. řádky v databázi)“ to je dost podstatný rozdíl, obojí se řeší dost jinak :) řádky z databáze - WHERE, položky z formuláře - nejspíš for nebo foreach každopádně IF na to nebude ta správná konstrukce. |
||
Adam501 Profil |
AM:
Áha. Upřesním: mám formulář o 6 polích a na té stránce, kam ho odesílám, chci aby se mi ukázaly všechny položky, které dostaly stejnou hodnotu. Příklad: A - 6 B - 8 C - 6 D - 12 E - 12 F - 12 Na další stránce se má ukázat: A C D E F A u každého zadávání dalšího sloupce v databázi. Je to asi trošku složité, dám oba sloupce do původního formuláře, ale moje představa podmínky byla: if(2 < proměnných = to samé) {echo "názvy všech shodných proměnných s dalším fomrulářem"} Ale je to asi fakt zbytečné složitý. |
||
juriad Profil |
#5 · Zasláno: 1. 7. 2012, 13:16:16
function minTwo($val) { return $val >= 2; } $gety = array('a'=>$_GET['a'], 'b'=>$_GET['b'], ....); // ulozi hodnoy do pole indexovane polozkami // mozna jeste: // $gety2 = asort($gety); // a nadale pracovat s $gety2 $duplicity = array_keys(array_filter(array_count_values($gety), "minTwo")); // spocita cetnost hodnot, zachova jen ty ktere se opakuji, zahodi cetnosti $vysledek = array_keys(array_intersect($gety, $duplicity)); // zachova z pole jen ty ktere maji hodnoty v poli duplicity, zahodi hodnoty pro podrobnosti a dokumentaci funkcí na ně prostě klikni |
||
Adam501 Profil |
#6 · Zasláno: 1. 7. 2012, 13:45:44
juriad:
To je ono. Díky, četl jsem ten článek o array_intersect ale nepochopil jsem ho uplně správně. |
||
Časová prodleva: 12 let
|
0